FFmpeg 中不同的 h264 编码器

Different h264 encoders in FFmpeg

ffmpeg4.0中,有几个h264编码器。如果你使用./configure --list-encoders | grep "h264",你可以看到它们。

不知道有什么区别。我想用ffmpeg将本地gif转成mp4,请问哪个编码器适合我?

每个编码器使用不同的 API 来访问视频硬件:

  • h264_amf 访问 AMD GPU,(仅 windows)
  • h264_nvenc 使用 nvidia gpu cards(使用 windows 和 linux)
  • h264_omx raspberry pi 编码器
  • h264_qsv 使用 Intel Quick Sync Video(现代 Intel 中嵌入的硬件 CPU)
  • h264_v4l2m2m 使用 V4L2 Linux 内核 api 访问硬件编解码器
  • h264_vaapi 使用 VAAPI 这是另一个抽象 API 来访问视频加速硬件(仅 Linux)
  • h264_videotoolbox 使用 videotoolbox 和 API 访问 macOS 上的硬件

使用合适的硬件,每个编码器都会成功地将解码后的 gif 编码为 mp4。

您可以自定义此命令将 gif 转换为 mp4 :

$ ffmpeg -i local-gif.gif -c:v libx264 output.mp4

libx264 是不使用任何特定硬件的默认编码器,可以更改为所需的编码器。