hlae搭配ffmpeg录制参数讨论
-
首先因为hlae本身pipe的原因,录制速度并不是很快,我升级了CPU和显卡,录制速度仍然是54fps左右,也就是录制300fps的1s的视频大概要花掉6s,除了让hlae开发者优化之外,可以改动的就是编码参数了。
ffmpeg并不是编码器,是一个能兼容很多编码格式的转码压制软件,当前的ffmpeg预设仍然是调用了libx264,只是调用的指令格式和参数略有区别,提升有两个思路:
-
针对录制帧率进行参数上的优化,对高帧率来说,相邻两帧的运动幅度就没有那么大了,
rc-lookahead
、keyint
等参数可以适当提高,或许有助于提高压缩率 -
使用prores编码,不过最好是当你想要损失很少的画质时考虑,它比无损录制码率小很多,
prores 4444
几乎接近于无损,但是高帧率录制可能比较吃亏,有待验证
-
-
不明觉厉,二楼沙发
-
测试记录
我测试了一下新的ffmpeg录制参数(300fps 1080p)
-
Prores 422HQ
用prores编码,画质几乎无损的情况下,26GB/min,无损是104GB/min,和h264的p5预设差不多 -
H264
但是对于H264,我发现了一个很牛逼的减小体积的方法,就是疯狂拉高最大关键帧距离GOP,像这里高帧率录制的情况,默认的GOP参数值比较低,测试中我把参数给到了1000,体积缩小了30%但是录制速度没有降低
所以,可以暴力地给到帧率的5~10倍,比如300fps,给它个3000。缺点是这样录制的素材播放和剪辑软件中都会卡爆,基本上只能用代理了
补充:试了一下发现不卡,难道是我配置太好了?
参数说明
在原本的ffmpeg预设指令中加入
-g 3000
,g代表gop,3000是针对300fps,最大10s一个关键帧,以下为测试的预设指令//定义预设 mirv_streams settings add ffmpeg p3 "-c:v libx264 -preset superfast -crf 12 -pix_fmt yuv422p -g 3000 {QUOTE}{AFX_STREAM_PATH}.mp4{QUOTE}"; //alias定义快捷指令 mirv_exec alias p3 "mirv_streams settings edit afxDefault settings p3;echo;echo {QUOTE}当前录制设置: p3{QUOTE}";
代理说明
如果使用增加GOP的方法缩减体积,务必在剪辑软件中使用代理,统一选择低分辨率prores编码,具体的操作见百度或B站视频,搜索词例如:
pr 代理
-