FFmpeg 中不同的 h264 编码器
Different h264 encoders in 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,请问哪个编码器适合我?
每个编码器使用不同的 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 是不使用任何特定硬件的默认编码器,可以更改为所需的编码器。
在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,请问哪个编码器适合我?
每个编码器使用不同的 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 是不使用任何特定硬件的默认编码器,可以更改为所需的编码器。