时隔6年

终于有钱可以换新电脑

平常有使用ffmpeg的需求

准备在新电脑上试一试看看效果怎么样

mac VS windows

并没有非常严谨的进行评测

就是使用ffmpeg来做同样的事情

来比较所消耗的时间


首先是正常的使用cpu来压制视频、转码

同样的视频 mac大概用了1分50秒

windows用了2分44秒

接着两边都调用了硬件解码

这次差距确实体现出来

mac是12秒,windows是2分

可能主要是因为mac的38个gpu吧…

但是说真的 画质很差

真的没有win上压制的好


视频压制之类的还真的是一件很专业的事

什么编解码器 各种参数

我基本上都是门外汉

只是放到日常场景中简单比较一下

调用硬件解码

网上的教程还是蛮多的

FFMPEG 使用笔记

这遍文章的博主还真的很巧

跟我有一个一样的域名后缀

首先都是输入查看支持的硬件加速选项

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的

如果需要控制码率等

则有两种方法

HWAccelIntro - FFmpeg

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依旧没太被调用成功

内外网查了一大堆

好像调用的命令依旧是那个几条…

最后修改:2023 年 02 月 14 日
如果觉得我的文章对你有用,请随意赞赏