代码之家  ›  专栏  ›  技术社区  ›  CoXier

ffmpeg中不同的h264编码器

  •  6
  • CoXier  · 技术社区  · 7 年前

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

    • H264YAMF
    • H264NVNEC
    • 小精灵
    • 小精灵
    • H264V4L2M2M
    • H264VAAPI
    • H264视频工具箱

    我不知道两者有什么区别。 我想用ffmpeg把本地gif转换成mp4,那么哪个编码器适合我呢?

    1 回复  |  直到 7 年前
        1
  •  13
  •   Olivier Cazade    6 年前

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

    • H264_AMF访问AMD GPU(仅限Windows)
    • H264新用途 nvidia gpu cards (适用于Windows和Linux)
    • H264_OMX覆盆子PI编码器
    • H264O-QSV使用 Intel Quick Sync Video (嵌入现代英特尔CPU的硬件)
    • H264_V4L2M2M使用 V4L2 访问硬件编解码器的linux内核api
    • H264_vaapi使用 VAAPI 这是访问视频加速硬件的另一个抽象api(仅限linux)
    • H264视频工具箱使用 videotoolbox 在os x上访问硬件的api

    有了合适的硬件,每个编码器将成功地将您解码的gif编码为mp4。

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

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

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