HandBrake 使用 GPU 转换视频格式,可大幅缩短时间

作者: 科技微讯

日期:

HandBrake 是一款格式转换工具,我通常用它来把非 mp4 的视频转换成 mp4 格式,顺便压缩体积以方便网络传播。

HandBrake 在最近的版本中增加了硬件编码功能,转换格式时可以让 GPU 参与工作,我测试了一下,这样能大幅缩短转换时间。

打开 HandBrake,在界面中间选择 Video 标签,接着点击 Video Encoder 菜单,这里列出了多种编码方式。

Video Encoder
Video Encoder

其中带有 VideoToolbox 的就是启用了 GPU 编码的选项,上面这张截图是在 mac 上显示的列表。如果你是 win 或 linux 系统,根据 GPU 的不同可能是:

  • Nvidia:NVEnc
  • AMD:VCE
  • intel:QSV (QuickSync Video)。

我分别使用 H.264(x264) 和 H.264(VideoToolbox) 对同一个视频进行格式转换,所用时间分别是 16 分 45 秒、5 分 25 秒,可见开启 GPU 会大幅缩短转换时间。

使用 H.264(x264) 编码时,电脑的 CPU、GPU 使用率如下:

H.264(x264)
H.264(x264)

使用 H.264(VideoToolbox) 编码时,电脑的 CPU、GPU 使用率如下:

H.264(VideoToolbox)
H.264(VideoToolbox)

截图显示,没有使用 hardware encoder 时,电脑 CPU 的使用率接近 95%,GPU 是 0%。开启 hardware encoder,CPU 使用率虽然有所下降,但依然很高,大概为 86%,这时 GPU 的确发挥了作用,使用率是 15% 左右。

H.264(x264) 和 H.264(VideoToolbox) 生成的视频体积分别是 318MB、632MB。虽然除了编码方式之外我没有更改任何其他设置,但这两个视频的码率并不相同,分别是 3.05Mbps、6.07Mbps,这导致了它们体积的差异。

Linus 评测 M1 电脑时,分别用 HandBrake 的 software encode 和 hardware encode 测试了 M1、intel、amd 电脑,结果显示 hardware encode 都能明显缩短转换时间:

comp


参考文章:HandBrake – Convert Files with GPU/Nvenc Rather than CPU