hlae搭配ffmpeg录制参数讨论



  • 首先因为hlae本身pipe的原因,录制速度并不是很快,我升级了CPU和显卡,录制速度仍然是54fps左右,也就是录制300fps的1s的视频大概要花掉6s,除了让hlae开发者优化之外,可以改动的就是编码参数了。

    ffmpeg并不是编码器,是一个能兼容很多编码格式的转码压制软件,当前的ffmpeg预设仍然是调用了libx264,只是调用的指令格式和参数略有区别,提升有两个思路:

    1. 针对录制帧率进行参数上的优化,对高帧率来说,相邻两帧的运动幅度就没有那么大了,rc-lookaheadkeyint等参数可以适当提高,或许有助于提高压缩率

    2. 使用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 代理


Log in to reply