FFmpeg中的不同h264编码器

CoX*_*ier 6 ffmpeg h.264 android-ffmpeg

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

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

我不知道它们之间有什么区别.我想使用ffmpeg将本地gif转换为mp4,那么哪个编码器适合我?

Oli*_*ade 15

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

  • h264_amf访问AMD gpu
  • h264_nvenc使用nvidia gpu卡
  • h264_omx覆盆子pi编码器
  • h264_qsv使用英特尔快速同步视频(现代英特尔CPU中嵌入的硬件)
  • h264_v4l2m2m使用V4L2 Linux内核api访问硬件编解码器
  • h264_vaapi使用VAAPI,这是访问视频加速硬件的另一个抽象API
  • h264_videotoolbox使用videotoolbox API访问OS X上的硬件

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

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

$ ffmpeg -i local-gif.gif -c:v libx264 output.mp4
Run Code Online (Sandbox Code Playgroud)

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

  • amf 仅适用于 windows、nvenc (win/linux) 和 vaapi linux,您能否将这些 ietail 添加到您的回复中以使其更加详尽? (2认同)