如何在 ffmpeg 中启用 libx264

如何在 ffmpeg 中启用 libx264

我正在尝试在 ffmpeg 中使用 libx264 进行编码

ffmpeg -f image2 -r 25 -i frames/%03d.bmp -vcodec libx264  out.mp4

但是,我收到以下错误消息:

Unknown encoder 'libx264'

ffmpeg如果我们在控制台中输入,它会显示在配置下--disable-libx264,所以我猜这就是原因。

我该如何启用此功能?我在其他一些问题中发现可以通过使用此选项重新安装来完成,但有两件事我找不到:

  1. 是否可以不重新安装而更改配置?
  2. 如果没有,我该如何在重新安装时传递选项?

答案1

是否可以不重新安装而更改配置?

--disable-libx264 标志有点误导。这不是在安装期间禁用 h264 编解码器的选项,而是在创建二进制文件/可执行文件期间的编译标志。要更改该标志,您需要自己重新编译它,或者安装在编译期间启用了该标志的版本。这取决于您从中下载它的存储库。我可以确认 h264 在 18.04 中的原生 x64 Ubuntu 版本上可用。

如果没有,我该如何在重新安装时传递选项?

您需要从未禁用它的其他来源获取 ffmpeg。由巧克力味在我的系统上启用了该标志。可能是 WSL 使用了单独的存储库,从而禁用了它。

至于如何进行:

  • 使用 Windows 原生版本的 ffmpeg
  • 尝试不同的 Ubuntu 版本,例如 18.04 LTS
  • 从其他来源下载 ffmpeg,例子
  • 从以下位置编译 ffmpeg来源

答案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

来源:https://rpmfusion.org/Howto/Multimedia

相关内容