使用 ffmpeg 轉(zhuǎn)換視頻格式,ffmpeg 是 *nix 系統(tǒng)下最流行的音視頻處理庫(kù),功能強(qiáng)大,并且提供了豐富的終端命令,實(shí)是日常視頻處理的一大利器!
音頻格式轉(zhuǎn)換非常簡(jiǎn)單:
ffmpeg -i input.flac -acodec libmp3lame output.mp3
ffmpeg 將會(huì)使用 libmp3lame 解碼器將 input.flac 文件轉(zhuǎn)換為 mp3 格式的 output.mp3 文件。
想要批量轉(zhuǎn)換 flac 文件也是很常見(jiàn)的需求,我們可以結(jié)合 bash 命令來(lái)完成:
find . -name '*.flac' -exec bash -c 'ffmpeg -i '{}' -y '${0/.flac}.wav'' {} \
webm 是 Google 提出的多媒體文件格式,包含了 VP8 影片軌和 Ogg Vorbis 音軌,按照 BSD 格式開(kāi)源。webm 能夠提供更高質(zhì)量的在線視頻,但是其支持程度并不如存在已久的 mp4 和動(dòng)態(tài)圖片格式 gif,因此有時(shí)候會(huì)有將其轉(zhuǎn)換為 gif 格式的需求。我們用到的命令是:
ffmpeg -i input.webm -vf 'scale=400:-1,fps=10' output.gif
其作用是將 input.webm 格式的視頻轉(zhuǎn)換為橫向?qū)挾葹?400px,縱向?qū)挾缺3直壤拿棵?10 幀的 output.gif 圖片。
當(dāng)然,也可以將 gif 轉(zhuǎn)換為 webm 格式:
ffmpeg -i output.gif -c:v libvpx -auto-alt-ref 0 input.webm
如果出現(xiàn)“Unknown encoder libvpx”的問(wèn)題,需要重新在重新編譯安裝 ffmpeg 以支持 libvpx 編碼器:brew reinstall ffmpeg --with-libvpx。
ffmpeg -i input.webm -vf 'scale=trunc(iw/2)*2:trunc(ih/2)*2' output.mp4
這里 vf 參數(shù)的意義是,將視頻的長(zhǎng)寬強(qiáng)制轉(zhuǎn)換為偶數(shù),否則可能遇到“width not divisible by 2”的問(wèn)題。
使用視頻的第一幀作為封面:
ffmpeg -i your-video.mp4 -ss 00:00:00 -vframes 1 thumb.png
每 xx 秒生成一個(gè)縮略圖,每分鐘一張:
ffmpeg -i your-video.mp4 -vf fps=1/60 your-video-%03d.png
再將其合并:
ffmpeg -i your-video-%03d.png -filter_complex scale=-1:-1,tile=99x1:margin=10:padding=4 output.png
這里的 tile 長(zhǎng)度設(shè)定為 99,應(yīng)當(dāng)改為縮略圖的總數(shù)。
一步到位:
ffmpeg -ss 00:00:00 -i your-video.mp4 -vf 'select=not(mod(n\,24)),scale=-1:-1,tile=99*1' out.png
意思是從視頻的 00:00:00 處開(kāi)始,每 24 幀(一般動(dòng)換都是 24 幀的)取一張圖片,長(zhǎng)寬不進(jìn)行壓縮,最后合成在 99*1 的方格中。
聯(lián)系客服