OBS的调教(?)经验记录(如何降低丢帧率) | 您所在的位置:网站首页 › 测速丢包率高怎么办 › OBS的调教(?)经验记录(如何降低丢帧率) |
曾经一直饱受obs直播丢帧的困扰,最近忙活了几天之后终于可以在低丢帧率的情况下(指丢帧在0.1%左右)流畅直播了 虽然直播没人看 不过还是想写篇专栏,第一是作为记录,第二是看看能不能帮到目前正饱受obs丢帧困扰的streamers —————————————————————————————————— 在正文开始前先安利一个软件 msi afterburner和自带的监控软件RTSS 这两个软件主要辅助于在玩游戏的时候对自己的硬件进行实时的监控,以便于调整直播参数以及判断卡顿原因 然后这两个软件的使用方法嘛hummm百度上挺详细的,不过如果有需要的话也可以写个简单的操作指南 毕竟也不需要太多花里胡哨的显示,只需要调出几个用得到的就行了 个人的话调出来的主要就几个: CPU的使用率usage,温度temperature还有核心频率clock GPU的使用率usage,温度temperature还有核心频率clock 帧率framerate 有了这几个之后其实就已经满足需求了(当然这是很主观的,可以自己选择性的添加和删减) OK那么进入正文 ——————————————————————————————————— PS:直播模糊不属于直播掉帧,一般模糊是码率的问题,调高码率就好了 然后我将obs上可能会碰到的丢帧原因分为三类 网络问题导致的丢帧 obs因为渲染延迟错过的帧 obs因为编码延迟错过的帧 好吧其实这三类不是我自己分的,是obs里就已经有这样的分类了x 关于第一点:网络问题导致的丢帧 判断是否为网络延迟丢帧的话,在obs的主界面的下方就可以看到了 图片走起↓ obs下方信息栏示意,此obs版本为23.2.1最左边的丢帧就可以看出是否为网络延迟丢帧 如果出现丢帧,那么建议在文件->设置->输出那里适当降低码率 或者在文件->设置->视频那里修改下帧率或者分辨率 个人还是建议修改码率就好了,2500kbps的码率其实也蛮清楚的 网络就是这么坑爹,100Mbps网只有下行才有100上行可能就50(悲) →在讲第2,3点之前,先分享一个东西 在obs的主界面的查看->统计里,可以看到我以下讲的两个问题的数据 好多人丢帧并不是因为网络而是因为我下面要提的这两项 红框圈起来的是两个罪魁祸首关于第二点:obs因为渲染延迟错过的帧 碎碎念:这个问题真实让我整了好久 去外网搜索了一下obs frame missed due to render lag之后,在reddit上看到了用户Vancitygames的回答:(我会大概翻译一下我先贴个图) 原文链接:https://www.reddit.com/r/obs/comments/a9pob8/help_with_obs_rendering_lag/ 来自reddit(需那啥那啥那啥)大概意思就是,obs在推流的时候无论你选择软件编码还是硬件编码都需要占用大概5%的GPU来进行捕获,合成和渲染然后送给编码器,然后渲染延迟丢帧大概是因为GPU的占用已经满了,不过空间让obs浪了,然后obs就不得劲儿了,不爱干了 该用户提供的解决方法就是按win+i,然后选择游戏->游戏模式,选择关闭,还有里面的录制,也将其关闭(我操作系统是英文版的不知道我这么翻译是不是完全正确的,反正去找找很容易找到的应该) 然后提到的其他可能提高GPU占用率的地方是 在第二个屏幕上后台挂着直播会提高10%的占用率 没有进行FPS帧率限制,可能渲染一堆你根本看不到的帧 灰常溜批的超采样(游戏设置) 硬件加速内容等等(暂时不知道指哪些x,估计是包括硬件编码?) 那么这里就需要用到一开始安利的RTSS来辅助调整了,打开硬件监控之后,看看在游戏进行时的GPU占用率是多少,一旦逼近95,那么很大概率会导致掉帧,那么就适当降低画质,然后限制帧率,后台把直播关了,如果能把GPU使用率控制在90左右或以下的话,这部分的丢帧应该可以控制得很低了 别忘记关掉坑爹的win10游戏模式 →附加:这里顺便分享一下限制帧率的方法(N卡) 右键桌面打开英伟达控制软件(NVIDIA control panel) 在3D设置里面的全局设置里设置最高帧率限制,限制到自己屏幕刷新率就好了,或者屏幕刷新率适当往下1,2帧,可以顺带辅助缓解画面撕裂问题,至于理由,欢迎有空观看硬件茶谈的视频https://www.bilibili.com/video/BV1FK4y1x7bk?from=search;seid=14891418557655016539 英伟达控制面板展示(我的操作系统是英文所以界面是英文)第三点:obs因为编码延迟错过的帧 由于这里我关掉游戏模式之后就已经几乎没有因为编码延迟错过的帧了,所以这里分享的是根据我主观推测出来的解决方法(欢迎大家纠正补充) 既然是编码延迟导致的丢帧,那么我猜自然和编码器的选择有关,那么如果使用的是RTX的显卡(A卡有没有不知道,没用过A卡),那么应该除了x264之外还有一个硬件编码NVENC 在极为粗糙的测试之后,我的解决方法是 如果RTSS硬件监控在游戏玩起来的时候,CPU占用率是比较低的,但是GPU却是比较满的,那么就改用软件进行编码,反正则选用硬件 (其实我记得RTX显卡上对于编码是额外的一块芯片来负责的来着,会不会硬件编码并不会导致占用率提高呢,有待我多测试一段时间再来更新专栏好了) 不过一开始我的编码延迟错误帧是因为win10游戏模式导致的,原理未知,关掉了游戏模式之后就几乎没有再碰到编码丢帧的问题了,这部分先放在这里吧,欢迎大家补充 |
CopyRight 2018-2019 实验室设备网 版权所有 |