FFmpeg
FFmpeg是一个多媒体(影像与声音)的处理软件。
安装
一般性的安装可以直接装Ubuntu系统的FFmpeg套件:
sudo apt install -y ffmpeg; sudo apt clean
但我们这边建议装SergeyD的PPA,主要是我会用到svt-av1与fdk-aac:
sudo add-apt-repository -y ppa:sergey-dryabzhinsky/ffmpeg; sudo apt update; sudo apt install -y ffmpeg; sudo apt clean
不过要注意SergeyD的PPA有包一些其他的软件,可能会与现有的软件冲突(尤其是自己的桌机),需要取舍。
自己编
这边是尝试自己编一个出来用,重点在要包codec进去(在./configure
阶段),有可能会需要加上--enable-gpl --enable-nonfree
:
./configure --enable-gpl --enable-nonfree --enable-static --extra-ldflags="-static" --pkg-config-flags="--static"; make -j16
使用
- 大多数的情况下可以加上
-nostdin
,避免FFmpeg吃到stdin的资料。
范例
这边是一般性的用法,把来源档案(让FFmpeg自己去读)转成H.264格式,使用CRF模式,参数设为18(依照官方的说明应该是肉眼看不太出来[1]):
ffmpeg -nostdin -i "${filename}.mp4" -c:v libx264 -crf 18 -c:a libfdk_aac -b:a 128k -ac 2 -y "${filename}-transcoded.mp4"
YUV444转H.264
把YUV444格式的档案转成接近无损的H.264,其中需要指定:
-s 1920x1080
(来源影片的分辨率)-r 30
(来源影片的画面播放速率)
像是这样:
ffmpeg -f rawvideo -s 1920x1080 -r 30 -pix_fmt yuv420p -i BirdsInCage_30fps.yuv -c:v libx264 -preset veryslow -crf 1 -y BirdsInCage.mp4
要注意的是-crf 0
会强制产生4:4:4的格式,最少需要-crf 1
才能转成4:2:0
。
参考资料
- ↑ Encode/H.264 – FFmpeg. 2021-03-11 [2021-11-03] (English).
外部链接
- 官方网站 (英文)
- FFmpeg builds : SergeyD (英文)