OBS 编码器性能故障排除
常见问题
本指南包含对导致 OBS 或您可能正在玩的游戏在尝试流式传输或录制时遇到性能问题的常见问题的解释。
我的游戏帧率很好,但 OBS 跟不上!
这可能是因为您的 GPU 过载或者 GPU 与系统其余部分之间存在瓶颈。这些是略有不同的问题,但都很重要。
为什么OBS还要用GPU呢?
OBS 需要 GPU 时间和资源,因为它必须合成和渲染场景。如果您希望 OBS Studio 需要更少的资源,则必须构建额外的塔架 来构建更简单的场景和场景集合。
OBS不能用CPU来合成渲染吗?我的CPU真的很强!
虽然这在技术上可能是可行的,但 GPU 在执行此类任务时仍然比 CPU 更高效。在绝大多数情况下,这将对系统、渲染和编码性能产生净负面影响。
好吧好吧。我只是想让它工作,那么如何防止我的 GPU 过载呢?
防止 GPU 过载主要归结为防止您的 GPU 做比它必须做的更多的工作。如果您的 GPU 具有无限的处理能力,您可以继续以无上限的帧速率运行所有游戏。可悲的是,事实并非如此。GPU,即使是非常强大的 GPU,也只有有限的资源可以用来做事。这意味着如果我们想让它做很多事情(例如,玩游戏、合成和渲染 OBS 场景、做操作系统希望它做的所有其他事情、在没有专用芯片的情况下运行硬件编码等),我们必须聪明地知道我们要求它做多少。
解决方案
如果您正在努力处理断断续续/滞后的输出,并且您收到“编码过载”消息,您可能需要采取一些步骤来为 OBS Studio 使用一些免费资源。
快速修复:以管理员身份运行 OBS(仅限 Windows)
OBS Studio 可以要求 Windows 保留一些 GPU 容量供其使用。在许多情况下,只需以管理员身份运行 OBS Studio 即可解决 GPU 过载问题;在继续本指南之前尝试一下。
要以管理员身份运行 OBS Studio,请关闭 OBS Studio。
右键单击 OBS Studio 快捷方式
选择
Run as administrator
使用 GPU 检查其他程序
如果另一个程序正在大量使用 GPU,例如后台的另一个游戏或使用 GPU 执行某些计算的程序,请考虑将其关闭以节省资源。如果您有两个 GPU 密集型游戏实例,这也适用。
检查任务管理器 (Windows)/活动监视器 (macOS) 是否有使用大量 GPU 的程序
注意:除非您确定它们的用途(即只有您打开的),否则不要关闭程序
如果您尝试同时捕获两个游戏:
尝试[减少一个或两个游戏的图形设置](#reduce-the-games-graphical-settings),或
考虑单独捕获它们而不是同时捕获它们。
限制游戏帧率
我们知道您喜欢在最大设置和无上限帧率下玩您最喜爱的 AAA+ 游戏。我们知道您的系统可以处理它在 240 Hz 显示器上以每秒数千帧的速度运行。
但是,如果您要求您的 GPU 全速工作以使您的游戏运行,那么您留给 OBS Studio 的 GPU 处理能力将非常少。
最好的选择是限制游戏的帧率或启用垂直同步;这将为 OBS Studio 释放处理能力以进行合成。
限制(上限)游戏的帧率以匹配显示器的刷新率
大多数 PC 显示器以 60 Hz 运行
如果您的显示器具有更高的刷新率,例如 144 Hz,请将帧率设置为与该数字匹配
在游戏中启用垂直同步
如果您仍然遇到性能问题,请尝试限制游戏以匹配您在 OBS Studio 中的帧率
注意:以超过刷新率的无上限帧率运行游戏会带来收益递减,因为您和 OBS Studio 都无法看到它们。
降低游戏的图形设置
如果您的系统可以处理,那么在最大设置下播放会很棒。但是,如果您的游戏 FPS 或 OBS FPS 不稳定,那么您的系统将无法同时处理最大设置和运行 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 功能。
要禁用游戏模式和/或游戏 DVR,请遵循如何禁用 Windows 10 游戏功能指南
减少输出设置
降低 OBS 的分辨率将减少所需的 GPU 资源量。所有这些设置都可以在 OBS 设置 > 视频中修改。
降低输出分辨率
就减少编码器的负载而言,这可能是有益的。
降低帧率
帧速率也会影响渲染和编码性能。必须在更少的帧上完成工作将减轻负载。
如果 60 fps 不适合您,请尝试将其降至 30
降低基本(画布)分辨率
这不是我们通常推荐的做法,因为它会使所有捕获和管理资产的过程变得复杂。仅当您极度缺乏 GPU 资源时,我们才会推荐此方法。
要安全地降低基本(画布)分辨率:
创建一个新的场景集合并切换到它
在 OBS 设置 > 视频中,将基本(画布)分辨率更改为较低的
您现在需要调整源的位置和大小以适应较低的分辨率
构建更简单的场景
OBS Studio 允许您构建极其复杂的场景,并根据需要制作尽可能大的场景集合。然而,更多的复杂性是有代价的。每个源都需要一定数量的资源才能在场景中显示。大多数来源也需要一些资源,即使它们是不可见的。这是为了在同一场景集合中的场景之间实现更平滑的过渡,以及其他好处。
如果您的场景变得非常复杂或您的场景集合变得太大,OBS Studio 可能需要比您的系统在做其他事情(例如游戏)时可以腾出的资源更多的资源。幸运的是,这可以通过以下一些做法来解决,我们将在下面进行介绍:
限制你的来源
限制昂贵(难以运行)源的使用对性能非常有益。
在 Video Capture Sources 中使用较低分辨率,或在 Media Sources 中使用较低分辨率的媒体文件
例如:如果您不是以 4K 格式录制/流式传输,或者如果源按比例缩小,则不需要显示 4K 视频
使用几个较小分辨率的媒体文件或浏览器源并将它们放在需要的地方
占用整个基本(画布)分辨率(通常为 1080p)的浏览器和媒体源,空白区域会占用大量资源
减少过滤器
过滤器可以让您做各种很酷的事情:颜色调整、图像遮罩、图像锐化、渲染延迟等等!然而,滤镜和其他东西一样,需要一些资源来计算和渲染它们的效果。事实上,一些过滤器可能非常耗费资源。
尝试禁用一些过滤器
如果这提高了性能,请考虑删除该过滤器
将过滤器应用于尽可能小的源而不是源(例如整个场景)
如果您不想删除任何过滤器,请考虑在不需要时停用带有大量过滤器的源
减少浏览器资源
Web 浏览器是软件工程的惊人复杂壮举,能够呈现文本、图像、2D 图形、3D 图形和动画,并且它们可以播放音频、视频甚至游戏。但是,它们可能非常耗费资源。
这也适用于浏览器源,它通常用于显示流式聊天、自定义动画、覆盖和许多其他内容。在场景(或场景集合)中使用大量浏览器源会占用大量系统资源,这会对性能产生重大影响。
尝试减少您使用的浏览器源的数量
将浏览器源代码的宽度和高度减小到所需的最小尺寸
如果您有静态资产(非动画覆盖),请尝试其他来源类型
对于图像,请使用图像源
对于视频或音频文件,请使用媒体源或 VLC 源
一些流覆盖,例如 tip jars,通常使用复杂的 JavaScript 来模拟物理。这些可能会对性能产生很大影响。尝试禁用这些叠加层以查看性能是否有所提高
保持场景集合小而集中
OBS Studio 使用场景集合来组织场景。您不需要将您将要使用的每个场景都保存在同一个场景集中。如果您发现 OBS 性能不如刚开始时那么快,请考虑将您的场景集合拆分为多个场景集合。
Scene Collection
从OBS Studio 窗口顶部的菜单创建新的场景集合您还可以复制当前的场景集合,然后在每个集合的基础上删除不需要的场景
此软件“仅限学习交流,不能用于商业用途”如用于商业用途,请到官方购买正版软件,追究法律责任与本站无关!
我们每月需支付高额服务器费用,捐赠将保证服务器有更好的配置和稳定运行;非常感谢您的捐赠支持。
(资源收集整理维护不易,敬请珍惜并感谢开发者。)