我正在尝试在 ffmpeg 中使用 libx264 进行编码
ffmpeg -f image2 -r 25 -i frames/%03d.bmp -vcodec libx264 out.mp4
但是,我收到以下错误消息:
Unknown encoder 'libx264'
ffmpeg
如果我们在控制台中输入,它会显示在配置下--disable-libx264,所以我猜这就是原因。
我该如何启用此功能?我在其他一些问题中发现可以通过使用此选项重新安装来完成,但有两件事我找不到:
- 是否可以不重新安装而更改配置?
- 如果没有,我该如何在重新安装时传递选项?
答案1
是否可以不重新安装而更改配置?
--disable-libx264 标志有点误导。这不是在安装期间禁用 h264 编解码器的选项,而是在创建二进制文件/可执行文件期间的编译标志。要更改该标志,您需要自己重新编译它,或者安装在编译期间启用了该标志的版本。这取决于您从中下载它的存储库。我可以确认 h264 在 18.04 中的原生 x64 Ubuntu 版本上可用。
如果没有,我该如何在重新安装时传递选项?
您需要从未禁用它的其他来源获取 ffmpeg。由巧克力味在我的系统上启用了该标志。可能是 WSL 使用了单独的存储库,从而禁用了它。
至于如何进行:
答案2
似乎你拥有的 ffmpeg 二进制文件没有启用编解码器。如果你按照上述 @MMM 的建议检查编解码器
ffmpeg -codecs | grep 264
你应该看到一条线
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m ) (encoders: libx264 libx264rgb h264_v4l2m2m h264_vaapi )
重要的是前两个字母,它告诉您解码和编码均受支持。您需要下载启用了库的二进制文件或从头开始编译。ffmepg 网站上的分步说明很容易理解。
https://trac.ffmpeg.org/wiki/CompilationGuide
我通常从头开始编译,但这只是因为我个人想要 libfdk_aac,它的许可不同且无法分发。同样的限制不适用于 x264。
答案3
如果你正在使用 Rpmfusion,我试过这个命令,它对我有用
sudo dnf swap ffmpeg-free ffmpeg --allowerasing