跑的最快的CSGO高帧率素材录制方式

一般为了做变速或使用帧混合/重采样得到运动模糊效果,会录制高帧率素材

录制CSGO高帧率素材的方式有两种:

  • HLAE通道录制

    1. 有一定上手成本。要设置mirv_streamshost_framerate,传统方式得到tga无损图片序列,再用VirtualDub2或ffmpeg压制,过程繁琐效率低

    2. 现也可以调用ffmpeg直接录制得到MP4文件,效率有提升,基本不受硬盘速度限制,支持多通道录制,无需担心同步不同层的素材

  • 录屏

    慢放demo,录制60fps的素材,再进行处理(解释素材等)等效成高帧率素材,一般使用OBS/ShadowPlay/Bandicam/Relive/Capcura等

如今的问题

  1. HLAE+FFMPEG录制存在瓶颈,大约60FPS左右,无法充分利用中高端硬件的性能,测试时3700x(8C16T 4.1GHz)占用在50%左右,一般ffmpeg压制视频时几乎都在100%
  2. 使用录屏画质往往不理想,ShadowPlay设置50M码率仍然有点糊

解决办法 - OBS录屏

经过测试,R7 3700x+GTX1660super,可以稳定录制150FPS,每秒录制150帧,相比较之前的方法录制速度提升超过150%,且画质可控,体积较小

  1. 下载OBS Studio并安装

  2. 因为录制时参数不适用直播推流,建议新建一个专用的配置文件,比如叫CSGO录制

    配置文件

  3. 设置场景,捕获CSGO,避免录制到桌面的内容

    场景设置

  4. 打开设置-高级设置,修改颜色格式I444,色彩空间709,色彩范围全部

    高级设置

  5. 打开设置-视频,调整分辨率,帧率选项改成分数FPS值(帧率),这样就可突破120FPS的限制(图中150÷1=150FPS),具体设置成多少要看电脑的配置,我的3700x可以录制150FPS不掉帧,具体要测试

    视频设置

  6. 在音频中可以设置采样率=48kHz

  7. 打开设置-输出,输出模式改为高级,选择音频页面,设置轨道1音频比特流320

    高级-音频

  8. 选择录像页面,类型改为标准,编码器改为x264(Nvenc实测掉帧),码率控制使用CRF,CPU使用预设使用ultrafast,配置(Profile)使用high,CRF建议0~12几乎无损,CRF<17时肉眼无损

    对x264比较熟悉的话可以在最后一行自定义参数

    录像设置

  9. 调整测试8中的CRF和5中FPS,找到当前电脑配置稳定录制不掉帧的配置

    建议使用剪辑软件帧混合/重采样处理检查是否真的不掉帧,比如300fps素材60fps序列时大约5帧混合成1帧,因为在测试h264_Nvenc编码时出现了这种问题,x264暂时没有遇到

CSGO中录制

例如,慢放录制150FPS,等效300FPS素材

  • 使用demo_timescale 0.5此类指令慢放至50%的播放速率,也可在demoui中手动设置

  • 限制fps,减少CPU&GPU占用,此处fps_max 150,≥录制帧率,可适当增加10~20,

  • 设置OBS的开始录制与DEMO播放的键位一致,结束录制与DEMO暂停的键位一致,在游戏中使用热键录制

    bind PgUp “demo_resume”; bind PgDn “demo_pause”

    engine_no_focus_sleep 0 //后台不掉帧 No FrameDrop when unfocus

    快捷键

调整测试

CRF受限于硬盘速度和录制帧率&分辨率,CRF<6时低端机械硬盘可能因为速度不够而掉帧

FPS和CRF受限于CPU&GPU等,需要测试最稳定的值

  1. 打开OBS的统计,录制时切出,关注FPS是否会降低,渲染/编码跳帧是否频繁出现,录制1分钟错过的帧<5大致可以认为稳定,最好0跳帧
  2. 固定CRF=6,按照180fps->150fps->120fps->90fps->60fps的顺序测试

测试是否掉帧

  1. 无跳帧后查看视频的属性,查看码率,测试时

    1920*1080 150FPS--50%-->300FPS -CRF 6 -preset ultrafast
    

    素材码率50Mbps,等效为300FPS 码率100Mbps的素材,即7.2GB/Min,假设集锦共5分钟,需要20分钟素材,大约共占144GB

  2. 调整CRF,比如CRF=12时码率大约为=6的一半,144GB->72GB,画质仍然较高,直到=16~17以后才会肉眼有损

素材裁切和归档

  1. 有时视频素材有部分内容无用,可以使用avidemux进行无损裁切,裁切时选择I帧

  2. 注意到录制时为了速度preset选择ultrafast,但是preset为slow~slower时码率会大幅度降低,所以在项目完成后可以选择统一压制,把所有素材交给ffmpeg或x264进行例如-crf 12 -preset slower进行高压,替换原素材,原素材舍弃或者统一归档到HDD/NAS中

    睡觉前丢去压制,一觉醒来…50% XD

  3. 压制测试结果

    //素材 footage
    1920*1080 150FPS--50%-->300FPS -CRF 6 -preset ultrafast
    
    //压制参数 encode parameters
    [x264] --crf 12 --preset slower --output-csp i444
    [ffmpeg] -crf 12 -preset slower -pix_fmt yuv444p
    
    //[150fps]码率&文件大小变化 bitrate&filesize change
    440Mbps -> 76.4Mbps
    2.56GB -> 450MB
    

    文件大小为17%,如果项目原素材144GB,压制后约25GB,而且仍然质量很高、肉眼无损,总体非常可观

    下载链接 | Download Link

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
DirectShow是一个用于多媒体播放和录制的开发框架。在使用DirectShow录制视频时,有时会出现帧不对的问题。造成这个问题的原因可能有多个,下面会列举一些常见的原因。 首先,硬件问题可能导致帧不对。如果计算机的硬件配置较低,例如处理器速度过于缓慢或内存不足,可能无法实时处理视频数据,从而导致帧下降。此外,如果使用的摄像头或视频采集设备本身性能有限,也会影响帧。 其次,编码器的设置可能会导致帧问题。在录制过程中,选择合适的编码器对于维持正常帧非常重要。如果使用的编码器设置不当,例如选择了过的码、分辨或者帧,都可能导致实际录制的帧与预期不符。 另外,录制过程中的误操作也可能是造成帧不对的原因之一。如果在录制期间不小心触发了暂停、进等操作,都会导致录制的帧不匹配。 解决这个问题的方法也有多种。首先,确保计算机硬件配置足够强大以满足录制要求。其次,合理选择编码器和设置相关参数。可以参考一些录制常用的规范或推荐设置,例如常用的视频分辨、比特和帧。最后,在录制过程中,避免误操作,尽量保持持续的录制状态。 总结来说,DirectShow录制不对可能是由硬件问题、编码器设置或误操作造成的。通过适当调整硬件配置、优化编码器设置和避免误操作,可以解决这个问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值