8

我正在使用 ffmpeg 4.3.1 将视频从 h264 转换为 h265,最初我很高兴地发现我可以使用我的 Mac 的 GPU 来加速带有 hevc_videotoolbox 标志的转换。

我的 Mac 硬件是带有 AMD Radeon Pro 5300 的第 10 代 Intel i5

我正在使用这个命令:

ffmpeg -i input_h264.mp4 -c:v hevc_videotoolbox -b:v 6000K -c:a copy -crf 19 -preset veryslow output_h265.mp4

转换速度从 0.75 倍提高到 4 倍,几乎提高了 500%!

但后来我注意到大文件大小和稍微模糊的结果。然后我注意到更改 crf 或预设没有任何区别,ffmpeg 似乎忽略了这些设置。唯一可行的设置是视频比特率 (-b:v)。

所以我开始用谷歌搜索,看看我怎样才能得到更好的结果。

但除了这里和那里的一些帖子外,我大部分时间都是空白的。

我在哪里可以获得有关如何使用 hevc_videotoolbox 获得更好结果的文档?如何找出哪些设置有效,哪些设置被忽略?

4

3 回答 3

10

列表选项

运行ffmpeg -h encoder=hevc_videotoolbox以列出特定于 hevc_videotoolbox 的选项。

用于-b:v控制质量。-crf仅适用于 libx264、libx265、libvpx 和 libvpx-vp9。它将被其他编码器忽略。它也会忽略-preset.

hevc_videotoolbox 不如 libx265,但速度很快

与大多数硬件加速编码器一样,hevc_videotoolbox 的效率不如 libx265。因此,与 libx265 相比,您可能必须为其提供更高的比特率才能匹配同等质量。这可能会破坏从 H.264 重新编码到 HEVC/H.265 的目的。

如果可以,请避免重新编码

就个人而言,我会避免重新编码以防止生成丢失,除非原件的编码效率非常低并且驱动器空间更重要。

于 2020-11-22T02:34:29.047 回答
7

在苹果硅上使用videotoolbox的恒定质量模式(CFR)实现高速、高质量和小尺寸

(不适用于 Rosetta2)

更改日志 https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/efece4442f3f583f7d04f98ef5168dfd08eaca5c

我已经简单地测试过了。这是我的步骤:

  1. 编译 ffpmpeg 没有可用的现成二进制文件 https://trac.ffmpeg.org/wiki/CompilationGuide/macOS

  2. 运行-q:v 65[值应该是1-100,数字越大质量越好,65似乎可以接受]

例如

ffmpeg -i in.avi -c:v hevc_videotoolbox -q:v 65 -tag:v hvc1 out.mp4
于 2021-10-21T20:07:18.317 回答
2

VideoToolBox只能使用-b:v设置。crf 被忽略。您可以运行一些测试编码并了解什么视频比特率与您想要的 CF“等效”,然后使用该比特率。

于 2020-11-21T23:05:36.667 回答