使用 ffmpeg 轉(zhuǎn)換視頻格式,ffmpeg 是 *nix 系統(tǒng)下最流行的音視頻處理庫,功能強(qiáng)大,并且提供了豐富的終端命令,實(shí)是日常視頻處理的一大利器! 實(shí)例flac 格式轉(zhuǎn) mp3音頻格式轉(zhuǎn)換非常簡單: ffmpeg -i input.flac -acodec libmp3lame output.mp3 ffmpeg 將會(huì)使用 libmp3lame 解碼器將 input.flac 文件轉(zhuǎn)換為 mp3 格式的 output.mp3 文件。 批量格式轉(zhuǎn)換想要批量轉(zhuǎn)換 flac 文件也是很常見的需求,我們可以結(jié)合 bash 命令來完成:
webm 轉(zhuǎn) gif 格式webm 是 Google 提出的多媒體文件格式,包含了 VP8 影片軌和 Ogg Vorbis 音軌,按照 BSD 格式開源。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 格式:
如果出現(xiàn)“Unknown encoder libvpx”的問題,需要重新在重新編譯安裝 ffmpeg 以支持 libvpx 編碼器:brew reinstall ffmpeg --with-libvpx。 轉(zhuǎn)換為 mp4 格式:ffmpeg -i input.webm -vf 'scale=trunc(iw/2)*2:trunc(ih/2)*2' output.mp4 這里 vf 參數(shù)的意義是,將視頻的長寬強(qiáng)制轉(zhuǎn)換為偶數(shù),否則可能遇到“width not divisible by 2”的問題。 生成視頻縮略圖生成封面使用視頻的第一幀作為封面:
每 xx 秒生成一個(gè)縮略圖,每分鐘一張: ffmpeg -i your-video.mp4 -vf fps=1/60 your-video-%03d.png 再將其合并:
這里的 tile 長度設(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 處開始,每 24 幀(一般動(dòng)換都是 24 幀的)取一張圖片,長寬不進(jìn)行壓縮,最后合成在 99*1 的方格中。 |
|