时隔6年
终于有钱可以换新电脑
平常有使用ffmpeg的需求
准备在新电脑上试一试看看效果怎么样
mac VS windows
并没有非常严谨的进行评测
就是使用ffmpeg来做同样的事情
来比较所消耗的时间
首先是正常的使用cpu来压制视频、转码
同样的视频 mac大概用了1分50秒
windows用了2分44秒
接着两边都调用了硬件解码
这次差距确实体现出来
mac是12秒,windows是2分
可能主要是因为mac的38个gpu吧…
但是说真的 画质很差
真的没有win上压制的好
视频压制之类的还真的是一件很专业的事
什么编解码器 各种参数
我基本上都是门外汉
只是放到日常场景中简单比较一下
调用硬件解码
网上的教程还是蛮多的
这遍文章的博主还真的很巧
跟我有一个一样的域名后缀
首先都是输入查看支持的硬件加速选项
ffmpeg -hwaccels
在win的上我记得会出现好几个结果
但是mac上的话只会返回videotoolbox
接下来看看它支持的编解码器
ffmpeg -codecs | grep videotoolbox
返回结果为:
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (encoders: libx264 libx264rgb h264_videotoolbox )
DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (encoders: libx265 hevc_videotoolbox )
DEVIL. prores Apple ProRes (iCodec Pro) (encoders: prores prores_aw prores_ks prores_videotoolbox )
重点是括号里面的内容
如果我需要调用硬件解码的话就需要-c:v hevc_videotoolbox
根据这个博主介绍
VideoToolbox 是不支持 CRF的
如果需要控制码率等
则有两种方法
VideoToolbox supports two types of rate control:
- Bitrate-based using
b:v
- Constant quality with
q:v
. Note that the scale is 1-100, with 1 being the lowest and 100 the highest. Constant quality mode is only available for Apple Silicon and from ffmpeg 4.4 and higher.
以上是来自文档的介绍。
最后整理一下,如果我使用ffmpeg来调用,则需要这样输入:
split_video= ffmpy.FFmpeg(
inputs={input_path:None},
outputs={'output.mp4': [
'-ss', '%s'%v1,
'-t', '%s'%v2,
'-c:v','h264_videotoolbox',
'q:v','50' # 也可以使用b:v指定码率
]}
)
windows下调用方法也是相似的
我没有独显,是5700G上的核显
根据上面的流程查询到的结果就是h264_amf
,对上方的h264_videotoolbox
进行替换即可。
最后
通过性能监控等
m2max的gpu依旧没太被调用成功
内外网查了一大堆
好像调用的命令依旧是那个几条…
2 条评论
好的 非常感谢