[OBS常见问题]CPU 使用率高/编码率高/编码时间过长?先读这个!

[OBS常见问题]CPU 使用率高/编码率高/编码时间过长?先读这个!

对视频进行编码是一项非常耗费 CPU 的作,OBS 也不例外。OBS 使用最好的开源视频编码库 x264 对视频进行编码,并且可以在高端 GPU 上使用 NVENC 等硬件编码器。但是,有些人可能会遇到高 CPU 利用率,如果您的设置对于计算机硬件来说太高,则在 OBS 处于活动状态时,计算机上运行的其他程序可能会遇到性能下降的情况。在某些情况下,OBS 会在其状态栏上显示“编码过载”,这意味着您的计算机无法足够快地对视频进行编码以维持您设置的设置,这将导致视频在几秒钟后冻结,或周期性卡顿。

以下是一些可以降低资源利用率的方法,并希望使 OBS 和您的程序在编码时运行得更快:

降低输出分辨率
您编码的分辨率对 CPU 使用率的影响最大。例如,1080p 每帧的像素数是 720p 的两倍多,并且您的 CPU 使用率也会相应增加。降低 CPU 使用率的最常见方法是降低分辨率。当您缩小规模时,OBS 会获取您的场景,并在将其提供给编码器之前根据您的指示将其缩小。您可能希望基本分辨率为 1080p,因为这是您的内容所处的分辨率,但您的 CPU 可能无法对未缩小的 1080p 视频进行编码。因此,您可以将分辨率缩小到 720p(或更低)以保持图像不变,但使用较小的分辨率来减少 CPU 负载。

你可以在“设置”>“视频>输出(缩放)分辨率”中更改要缩小的程度。您可以保持基本(画布)分辨率相同,这样您的布局就不会改变,然后将分辨率缩小到能为您提供良好性能的任何分辨率。

不同的缩小滤波器(双线性、双三次和 Lanczos)只是改变了用于缩小画面的算法:双线性速度最快,占用的资源最少,但看起来不太好,而 Lanczos 占用更多资源,但看起来更好。在性能方面,尽管它们没有太大区别。请随意尝试哪种过滤器最适合您。

降低帧速率
如果您的流式传输速度高于 30 FPS,另一种选择是考虑将帧速率降低到 30 FPS。它将减少 CPU 在给定时间跨度内必须处理的帧数,从而降低 CPU 使用率。您甚至可能觉得有必要将帧速率降低到 30 FPS 以下,以防您的 CPU 非常弱且陷入困境。

使用硬件编码器(Quicksync、AMF 或 NVENC)
Quicksync、AMF 和 NVENC 是硬件编码器,分别用于最新的 Intel 集成 GPU、较新的 AMD GPU 和最新的 NVIDIA GPU。您可以将编码负载卸载到这些硬件编码器,但代价是在相同的比特率下质量会明显下降,尽管较新的 NVIDIA 卡实际上优于软件编码)。请注意,QSV / AMF 在低比特率下特别差,因此不建议将它们用于流媒体。
如果您有上述硬件编码器之一,
则可以在编码设置中查看这些选项是否可用。

Quicksync 的设置有点棘手,但这里有一个指南: https://obsproject.com/forum/resources/how-to-use-quicksync.82/
同样,这是 AMF 编码器的故障排除指南: https://github.com/Xaymar/obs-studio_amf-encoder-plugin/wiki/Troubleshooting-Guide

更改您的 x264 预设
如果您使用的是软件编码器 (x264),它有许多“预设”,可以相应地改变您的视频质量和 CPU 使用率。OBS 默认值非常快,在大多数情况下,这是 CPU 使用率和视频质量之间的最佳平衡。可以在“设置”>“输出”(如果处于简单模式,请检查“启用高级编码器设置”)>“编码器预设”中更改此设置。

预设的名称旨在指示编码器的运行速度。更快的预设将使用更少的 CPU,但会牺牲高质量的计算。较慢的预设将使用更多的计算来提高质量,但会使用更多的 CPU。

例如,如果您想尝试在不修改分辨率或 FPS 的情况下降低 CPU 使用率,您可以通过将 x264 预设更改为超快或超快来降低 CPU 使用率,并且 x264 将花费更少的时间尝试使图像看起来不错,并且会为您节省一些 CPU 周期。图像可能看起来有点块状或像素化,但您将能够保留分辨率/fps。
使用此设置时
要非常小心,因为即使快或慢一步也会对 CPU 使用率产生巨大影响。例如,名为“faster”的预设可以使用两倍于“veryfast”的 CPU 量,即其正上方的预设。如果您不确定将其设置为什么,请始终将其设置回 veryfast。

检查您的来源
一些来源(例如网络摄像头和采集卡)只需在您的场景中就会占用大量 CPU,因为它们必须解码视频数据。如果您使用的是网络摄像头,请检查它是否以太高的分辨率运行(如果不是全屏,则很少需要超过 480p)。如果存在复杂的动画或脚本处于活动状态,浏览器源也会消耗 CPU。

如果针对不同的方案有许多不同的场景,请考虑在适当的情况下将它们拆分为单独的场景集合。这将减少 OBS 必须跟踪的活动源的数量,从而降低 CPU 使用率。

升级您的硬件
有些 CPU 非常弱,以至于它们几乎无法让任何像样的工作。双核 CPU 和 AMD APU 因此尤其臭名昭著。他们也许能够使用超快预设以 360 FPS 的速度获得 25p 流,但它肯定看起来不太好。这由你来决定。如果您有 Sandy Bridge i5 或 i7 或更高版本,或者 AMD 6 核或 8 核或更高版本,那么您应该能够以合理的分辨率和帧速率提供外观不错的流。

OBS 与许多其他流媒体/录制程序的不同之处在于它利用您的 GPU 来获得更好的性能。不幸的是,在某些较旧或预算模型的 GPU 上,这可能是流性能的瓶颈。这通常是由于内存带宽低和/或处理器内核数低造成的。nVidia GTX 200 系列(250、260、280)和 9800GT 等 GPU 和早些时候在他们那个时代曾经非常强大,但现在已经非常老旧的卡,会让 OBS 性能受到很大影响。

以相同的频率
运行所有音频源如果您的桌面音频以 44100 Hz 运行,但您将 OBS 设置为以 48000 Hz 编码,则它必须对音频进行重新采样,这会使用 CPU 时间。您添加的使用不同采样率的音频源(例如麦克风、媒体源)越多,重采样消耗的 CPU 使用率就越多。以相同的频率运行所有音频设备和 OBS 以避免这种情况。

其他程序/游戏也
使用 CPU 某些程序(尤其是游戏)可能会使用大量 CPU。这包括一些明显的,例如《战地风云 4》,以及一些不明显的,例如通过模拟器玩的游戏。如果游戏使用大量 CPU,它会干扰 OBS,就像 OBS 会干扰游戏一样,因此您需要考虑关闭这些设置以补偿您正在玩的游戏。您还可以使用“设置”>“高级”中的“进程优先级”设置来增加或减少程序的处理器优先级。通常会赋予 OBS“高于正常”进程优先级,以确保 OBS 被系统优先考虑并平稳运行,但请谨慎使用。

通过日志分析器运行日志以获取更多建议
如果还有任何其他可能导致 OBS 运行缓慢的事情,您通常可以通过 R1CH 的日志分析器运行 OBS 日志来找到它们。它会让您知道任何其他可能减慢速度的性能问题,或者您的设置可能遇到的任何其他问题。您可以从 OBS 帮助>日志文件菜单中执行此作,或者将日志粘贴到分析器站点上的框中。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容