FFmpeg中的不同h264编码器

时间:2018-06-05 06:59:54

标签: ffmpeg h.264 android-ffmpeg

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

  • h264_amf
  • h264_nvenc
  • h264_omx
  • h264_qsv
  • h264_v4l2m2m
  • h264_vaapi
  • h264_videotoolbox

我不知道它们之间的区别是什么。我希望使用ffmpeg将本地gif转换为mp4,那么哪种编码器适用于我?

1 个答案:

答案 0 :(得分:12)

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

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

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

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

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

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