在 OSX 上最佳使用 hevc_videotoolbox 和 ffmpeg

Bra*_*esh 3 macos ffmpeg hevc video-toolbox

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

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

我正在使用这个命令:

ffmpeg -i input_h264.mp4 -c:v hevc_videotoolbox -b:v 6000K -c:a copy -crf 19 -preset veryslow output_h265.mp4
Run Code Online (Sandbox Code Playgroud)

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

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

所以我开始在谷歌上搜索,看看如何才能获得更好的结果。

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

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

Phi*_*Mok 29

使用Apple Silicon上videotoolbox的恒定质量模式,实现高速、高质量和小尺寸。这适用于 FFmpeg 4.4 及更高版本 \xe2\x80\x94 它基于此提交

\n

请注意,这不适用于 Rosetta 2。

\n
    \n
  1. 为 macOS编译 ffmpeg或ffmpeg 从 Homebrew使用( brew install ffmpeg)

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

    \n
  4. \n
\n

例如:

\n
ffmpeg -i in.avi -c:v hevc_videotoolbox -q:v 65 -tag:v hvc1 out.mp4\n
Run Code Online (Sandbox Code Playgroud)\n

  • 太棒了,这似乎对我有用!值得注意的是,数字越高,质量越好(与 x264 使用的 CRF 值相反)。100 是最高质量,1 是较差质量。 (3认同)
  • 自制程序构建就足够了,但不便携。因为它是动态链接的。 (2认同)

小智 5

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


llo*_*gan 5

列表选项

运行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 的目的。

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

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