ffmpeg在macOS上调用GPU

太长不看系列

# 使用H.264编码:
ffmpeg -vcodec h264_videotoolbox -i <input> <output> 
# 使用H.265编码:
ffmpeg -vcodec hevc_videotoolbox -i <input> <output>

正文

ffmpeg目前是一个非常流行的视频编解码器(去官网的hall of shame上看一看甚至能看到不少熟悉的国产播放器的身影)。但是默认配置的ffmpeg最大的问题就是只能使用CPU进行编解码操作,白白浪费GPU的算力。

一方有难,八方围观

之前我搜索过macOS有没有办法调用GPU,当时找到的是使用-hwaccel参数。实测效果并不理想,只调用了2%-5%的GPU,效果几乎跟没有一样。

由于前段时间主板灰飞烟灭换了块主板,因此重新找了找网上的帖子,这次找到了更高效的参数:-vcodec h264_videotoolbox

这里的h264_videotoolbox设置的是输出H.264编码的视频,如果需要输出H.265编码,可以改成-vcodec hevc_videotoolbox

Videotoolbox是苹果提供的一个框架,可以提供直接接触硬件编解码器的途径。从2015年开始ffmpeg开始整合进对Videotoolbox框架的支持。(但是那时候买不起mac不知道)

编码速度对比

在实际测试过程中,对于硬编码字幕的操作,使用纯CPU编码的平均速度在1.5倍左右,而使用CPU和GPU混合编码可以把平均速度提高到7.5倍左右。

但即使是这样也没办法做到完全榨干GPU的性能(Iris Plus 645只能占用到30%左右),也许还会有更好的方式。

Mark

广岛大学社会心理学(预备)研究生。忙。AE/PR/FCPX/PS/LR/AI(Adobe Illustrator)。会一点Python。

相关推荐

暂无评论

有什么想法说出来听听?

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

微信扫一扫,分享到朋友圈