在 MacOS 上使用硬件加速转码视频
今天有个视频要转码,熟练地掏出 ffmpeg:
ffmpeg -i input.avi -c:v libx265 -an o.mp4
视频有一小时,转了 20 多分钟还没完成,发现不太对,速度只有 2.x。

CPU 占用率在 80% ~90% 之间波动。一开始想着 CPU 占用率这么高正常,因为以为 M 系列的 CPU 和 GPU 是一体的。其实并不是,M-chips 也是有 GPU 模块的。
网上搜索一番,在 ffmpeg 的官网上发现得加参数才行:
ffmpeg -i input.avi -an -c:v hevc_videotoolbox output.mp4
这样速度有接近 6x:

如果换成 h264 呢?
ffmpeg -i input.avi -an -c:v h264_videotoolbox output.mp4
相对于 hevc(h265) 来说,编码会更快一些:

ffmpeg真无所不能
我一般使用 -c copy 就能完成瞬间转换格式,实际上并没有重新编码,但大部分视频也能看。转码确实需要加上这种特殊参数,否则挺慢的
只改变封装用 copy 一般没问题。