OBS故障排除:一般性能和编码问题
编码视频是一个非常CPU密集型的操作,OBS也不例外。OBS使用最好的开源视频编码库x264来编码视频。但是,有些人可能会遇到CPU利用率高的问题,如果您的设置对于计算机硬件来说过高,则在OBS处于活动状态时,计算机上运行的其他程序可能会遇到性能下降的问题。在某些情况下,OBS会在状态栏显示“编码过载!”,这意味着您的计算机无法以您的设置足够快地编码视频,这将导致视频冻结几秒钟,或定期卡顿。以下是一些降低资源利用率的方法,希望能在编码时让OBS和程序运行得更快:
降低输出分辨率
---------------------------------------------------------------------------------------
编码时的分辨率对CPU使用率的影响最大。例如,1080p的每帧像素数是720p的两倍多,CPU使用率也相应增加。降低CPU使用率的最常见方法是降低分辨率。当你缩小尺度时,OBS会把你的场景缩小到你告诉它的程度,然后再把它交给编码器。您可能希望您的基本分辨率为1080p,因为这是您的内容所在的分辨率,但您的CPU可能无法对未缩小的1080p视频进行编码。因此,您可以将分辨率降低到720p(或更低),以保持图像不变,但可以使用更小的分辨率来减少CPU负载。
您可以在“设置”>“视频”>“输出(缩放)分辨率”中更改要缩小的大小。你可以保持你的基本(画布)分辨率不变,这样你的布局就不会改变,然后把分辨率降到任何能给你带来好性能的地方。
不同的降尺寸滤镜(双线性、双三次和Lanczos)只是改变了用于缩小图片的算法:双线性最快,占用的资源最少,但看起来不太好,而Lanczos占用的资源更多,但看起来更好。性能方面,虽然他们没有太大的不同。请随意试用哪种过滤器最适合您。
降低帧速率
-------------------------------------------------------------------------------------------
如果您的推流帧速率超过30FPS,另一个选择是考虑降低您的帧速率为30帧/秒。它将减少CPU在给定时间跨度内必须处理的帧数,从而减少CPU的使用。你甚至会觉得有必要把帧速率降到30帧以下,以防你的CPU性能真的很弱,很难工作。
更改x264预设
----------------------------------------------------------------------------------------
视频编码器,x264,有许多“预设”,将改变您的视频质量和CPU使用率。OBS的默认值是veryfast,这在大多数情况下是CPU使用和视频质量之间的最佳平衡。此设置可以在“设置>输出”(如果处于简单模式,请检查“启用高级编码器设置”)>编码器预设中更改。
预设的名称旨在指示编码器的运行速度。更快的预设将使用更少的CPU,以牺牲高质量的计算为代价。较慢的预设将使用更多的质量计算,但将使用更多的CPU。
例如,如果您想尝试在不修改分辨率或FPS的情况下减少CPU使用量,可以通过将x264预设更改为“超高速”或“超快”来减少CPU使用量,x264将花费更少的时间来尝试使图像看起来更好,并将为您节省一些CPU周期。图像可能看起来有点块状或像素化,但您将能够保持分辨率/fps。
在使用这个设置时要非常小心,因为即使快一步或慢一步都会对CPU的使用产生巨大的影响。例如,名为“faster”的预置可以使用两倍于“veryfast”的CPU量,即它正上方的CPU量。如果您不确定要将其设置为什么,请始终将其设置回veryfast。
请尝试Quicksync、AMF或NVENC
---------------------------------------------------------------------------------------------
Quicksync、AMF和NVENC是分别安装在最新Intel集成GPU、最新AMD GPU和最新nVidia GPU上的硬件编码器。您可以将编码负载卸载到那些硬件编码器上,但代价是在相同的比特率下,质量会明显下降。一般来说,对于给定的比特率,基于GPU的编码器没有x264那么高的质量,但是好处是大大减少了CPU的负载。
如果您有一个前面提到的硬件编码器,您可以看到这些选项是否在编码设置中对您可用。
Quicksync的设置有点棘手,但这里有一个指南:https://obsproject.com/forum/resources/how-to-use-quicksync.82/
同样,以下是AMF编码器的故障排除指南:https://github.com/Xaymar/obs-studio_amf-encoder-plugin/wiki/Troubleshooting-Guide
查一下你的信号源
------------------------------------------------------------------------------------------------
一些来源,如网络摄像头和采集卡在现场直播时可以使用大量的CPU资源,因为他们必须解码视频数据。如果您使用的是网络摄像头,请检查它的分辨率是否过高(如果不是全屏,则很少需要超过480p)。Logitech C920在以1080p分辨率运行时,在许多系统上尤其存在问题。如果有复杂的动画或脚本处于活动状态,浏览器源也会占用CPU。
查看此视频以获得更详细的解释(虽然此视频有点旧,并且使用OBS Classic,但此信息仍然非常准确!):https://www.youtube.com/watch?v=a274YynXRwI
升级硬件
--------------------------------------------------------------------------------------------
有些cpu太弱了,几乎无法正常工作。双核CPU和AMD APU在这方面尤其臭名昭著。他们也许可以通过使用超快预设的每秒25帧的360p流逃脱惩罚,但这看起来肯定不太好。那由你决定。如果您有Sandy Bridge i5或i7或更高版本,或AMD 6核或8核或更高版本,那么您应该能够以合理的分辨率和帧速率提供一个看起来不错的推流。
OBS不同于许多其他流媒体/录制程序,因为它利用GPU获得更好的性能。不幸的是,在一些旧的或低预算gpu上,这可能会成为推流性能的瓶颈。这通常是由于低内存带宽和/或低处理器核心数。像nVidia GTX 200系列(250、260、280)和9800GT以及更早版本这样的GPU在他们的时代曾经非常强大,但是现在是非常旧的显卡,这将使OBS性能受到很大影响。
页:
[1]