疯哥 发表于 2023-2-15 19:43:11

OBS编码性能故障排除

常见问题
本指南包含对常见问题的解答,这些问题会导致OBS或您正在玩的游戏在尝试直播或录制时出现性能问题。

我的游戏帧率没问题,但是OBS跟不上!
这可能是因为您的GPU过载了,或者您的GPU和系统的其余部分之间存在瓶颈。这是微妙不同的问题,但都很重要。

为什么OBS需要使用GPU?
OBS需要GPU的时间和资源,因为它必须合成和渲染一个场景。如果你希望OBS Studio需要更少的资源,你必须构建更简单的场景和场景集合。

OBS不能用CPU合成渲染代替吗?我的CPU真的很强!
虽然这在技术上可能是可行的,但在这种任务上,GPU仍然比CPU更有效。在大多数情况下,这将对系统、渲染和编码性能产生负面影响。

好吧好吧。我只是想让这个工作,那么我如何让我的GPU不超载呢?
防止GPU过载主要归结为防止你的GPU做更多的工作。如果你的GPU拥有无限的处理能力,你就可以继续以无上限的帧率运行你所有的游戏。可悲的是,事实并非如此。GPU,即使是真正强大的,用来做事的资源也是有限的。这意味着如果我们想让它做很多事情(例如,玩游戏,合成和渲染OBS场景,做你的操作系统希望它做的所有事情,如果没有专用芯片运行硬件编码等),我们必须明智地知道我们要求它做多少事情。

解决
如果您正在与波动/滞后的输出进行斗争,并且收到“编码过载”的消息,您可能需要采取一些步骤来留出一些资源供OBS Studio使用。
快速修复:以管理员身份运行OBS(仅限Windows)
OBS Studio可以要求Windows保留一些GPU容量供其使用。在许多情况下,GPU过载问题可以通过以管理员身份运行OBS Studio来解决;在继续阅读本指南之前,请尝试一下。
要以管理员身份运行OBS Studio,请关闭OBS Studio。
右键单击OBS Studio快捷方式
选择以管理员身份运行




检查其他程序对GPU的使用
如果另一个程序大量使用GPU,例如后台的另一个游戏或使用GPU执行某些计算的程序,请考虑关闭它以节省资源。如果您有两个GPU密集型游戏,这也适用。
检查任务管理器(Windows)/活动监视器(macOS)中使用大量GPU的程序
注意:除非您确定程序的用途(即仅打开的程序),否则不要关闭程序
如果您试图同时采集两个游戏:
尝试[减少一个或两个游戏的图形质量设置](#减少游戏图形设置),或考虑单独采集它们,而不是同时采集它们。



限制游戏帧速率
我们知道您喜欢在最高设置和无上限帧速率下玩您最喜爱的AAA+游戏。我们知道,您的系统可以在240 Hz显示器上以每秒数千帧的速度运行。
然而,如果你要求你的GPU全速工作以使你的游戏正常运行,那么你留给OBS Studio的GPU处理能力就很少了。
最好的选择是限制游戏的帧速率或启用垂直同步;这将释放OBS Studio合成的处理能力。
限制(上限)游戏的帧速率以匹配显示器的刷新率
大多数PC显示器以60 Hz运行
如果您的显示器具有更高的刷新率,例如144 Hz,请将帧速率设置为与该数字相匹配
在游戏中启用V-Sync
如果您仍然存在性能问题,请尝试在OBS Studio中限制游戏以匹配您的帧速率
注意:以超过刷新率的无上限帧速率运行游戏会带来递减的回报,因为您和OBS Studio都无法看到它们。


减少游戏的图形质量设置
如果您的系统能够处理最高画质设置,则使用最高画质设置进行游戏是非常好的。然而,如果您的游戏帧数率或OBS帧速率不稳定,则您的系统无法同时处理最高设置和运行OBS Studio。如果您减少游戏的图形质量设置,则游戏需要使用更少的GPU资源。
减少游戏的图形质量设置,并查看游戏/OBS Studio稳定性的变化


禁用游戏采集多显卡兼容性(仅限Windows)
实际上,您需要启用此选项的情况并不多。如果您正在SLI/CrossFire中运行图形卡,或者您的笔记本电脑带有多个图形卡,则可能需要启用此功能。在几乎所有其他情况下,您都应该禁用此选项。

在OBS Studio中,打开游戏捕获源的属性取消选中“多适配器兼容性”





禁用Windows游戏功能(仅限Windows)
虽然“游戏模式”可以让一些游戏运行得更流畅,但它通过优先分配系统资源(如CPU和GPU)来支持游戏。这意味着它会对OBS Studio等其他流程产生负面影响。
在Windows 10的最新版本上,游戏模式可以保持打开状态。但是,在1809之前的Windows 10版本上,您应该禁用游戏模式,以确保Windows不会在幕后从OBS Studio获取资源。这可以在游戏部分的Windows设置应用中完成。
游戏DVR是一项相关功能,它允许Windows在后台录制游戏画面,这与OBS Studio的回放缓冲功能非常相似。但是,由于这会使用额外的系统资源,如果使用OBS Studio,则应禁用此Windows功能。



减少输出设置
降低OBS的分辨率将减少所需的GPU资源量。所有这些设置都可以在OBS设置>视频中进行修改。
降低输出分辨率
这在减少编码器上的负载方面是有益的。
降低帧速率
帧速率也会影响渲染和编码性能。必须在更少的框架上进行工作将减轻负载。
如果60 fps不适合您,请尝试将其降至30 fps
降低基础(画布)分辨率
我们通常不建议这样做,因为这会使所有捕获和资产管理的过程变得复杂。我们只建议您在绝对缺乏GPU资源的情况下这样做。
要安全降低基础(画布)分辨率,请执行以下操作:
创建新的场景集合并切换到它
在OBS设置>视频中,将基础(画布)分辨率更改为较低的分辨率
您现在需要调整源的位置和大小,以适应较低的分辨率

构建更简单的场景
OBS Studio允许您构建非常复杂的场景,并使场景集合尽可能大。然而,更多的复杂性是有代价的。每个源都需要在场景中显示一定数量的资源。大多数资源即使不可见,也需要一些资源。这是为了在同一场景集合中的场景之间实现更平滑的过渡,以及其他好处。
如果您的场景变得非常复杂或场景集合太大,OBS Studio可能需要比您的系统在做其他事情(如游戏)时所能腾出的资源更多的资源。幸运的是,这可以通过以下几个实践来弥补,我们将在下面介绍这些实践:

限制你的来源
限制复杂(难以运行)源的使用对性能非常有利。
在视频采集源中使用较低分辨率,或在媒体源中使用分辨率较低的媒体文件
例如:如果您不是以4K录制/流式传输,或者如果源被缩小,则不需要显示4K视频
使用几个较小分辨率的媒体文件或浏览器源,并将其放置在需要的位置
占据整个基本(画布)分辨率(通常为1080p)的浏览器和媒体源使用大量资源

减少滤镜
滤镜可以让你做各种很酷的事情:颜色调整、图像掩蔽、图像锐化、渲染延迟等等!然而,过滤器和其他一切一样,需要一些资源来计算和渲染其效果。事实上,有些过滤器可能非常需要资源。
尝试禁用某些滤镜
如果这提高了性能,请考虑删除该滤镜
将滤镜应用于尽可能小的源,而不是应用于源(例如整个场景)
如果您不想删除任何筛选器,请考虑在不需要大量筛选器的情况下停用这些源

减少浏览器源
Web浏览器是软件工程中令人惊讶的复杂壮举,能够呈现文本、图像、2D图形、3D图形和动画,并且可以播放音频、视频甚至游戏。然而,它们可能非常耗费资源。
这也适用于浏览器源,它通常用于显示流聊天、自定义动画、覆盖和其他许多内容。在场景(或场景集合)中使用大量浏览器源可能会使用大量系统资源,这会对性能产生重大影响。
尝试减少使用的浏览器源的数量
将浏览器源的宽度和高度减小到所需的最小大小
如果您有静态资源(非动画覆盖),请尝试其他源类型
对于图像,请使用图像源
对于视频或音频文件,请使用媒体源或VLC源
一些流覆盖,例如tip jar,经常使用复杂的JavaScript来模拟物理。这些可能会对性能产生很大影响。尝试禁用这些覆盖以查看性能是否提高

保持场景集合小而集中
OBS Studio使用场景集合来组织场景。您不需要将要使用的每个场景都保存在同一场景集合中。如果您发现OBS性能不如刚开始时那么快,请考虑将场景集合拆分为多个场景集合。
从OBS Studio窗口顶部的菜单创建新的场景集合场景集合
也可以复制当前场景集合,然后按每个集合删除不需要的场景

页: [1]
查看完整版本: OBS编码性能故障排除