NVIDIA NVENC OBS 指南

由 Gerardo Delgado Cabrera 发表于 2019年2月26日 | Guides Broadcasting Streaming

关于本指南

本指南的目的是帮助您理解如何在 OBS 中使用 NVIDIA 编码器 NVENC。我们已经简化了一些概念,以便让更广泛的受众容易理解。如果您认为我们可以改进本指南的任何部分,或发现任何问题或错误,请在下面留言,我们将很乐意做出更新。

码率、分辨率和帧率

编码就是压缩图像。图像尺寸越小,我们需要压缩的越少,其保持的质量就越高。同样的情况也适用于帧率,观众很容易注意到 FPS 的降低,但分辨率则不明显,所以我们总是尝试以 60 FPS 进行串流。

首先,进行网速测试以确定您的上行带宽(如 SpeedTest)。我们希望使用约 75% 的上行带宽,因为游戏和其他程序(如 语音聊天工具Discord)也会抢占带宽。

然后,我们将确定可以用于这种码率的分辨率和 帧率。大多数直播网站都有建议的使用参数(Twitch, YouTube)。以下是我们的建议:

上行带宽

码率

分辨率

帧率

3 Mbps

2,500

1024x576

30

4 Mbps

3,500

1280x720

30

6 Mbps

5,000

1280x720

60

8-10 Mbps

6,000

1920x1080 *

60

12+ Mbps

10,000 (Mixer)

1920x1080

60

15+ Mbps

12,000 (Youtube)

1920x1080

60

20+ Mbps

15,000+ (Youtube)

2560x1440

60

40+ Mbps

30,000+ (Youtube)

3840x2160

60

* 高动态内容的重要注意事项。如果您要串流高动态场景(如赛车游戏、一些大逃杀游戏等),我们强烈建议降低分辨率。高动态内容不能被压缩太多,并且可能产生更多伪影(编码错误),使您的视频流看起来呈“块状”。如果降低分辨率,就会减少编码的数据,从而得到更高的观看质量。例如,对于《堡垒之夜》,许多直播者采用 1600x900 60 FPS 的参数进行串流。

** 新的和将来的 Twitch 直播者需要注意的重要事项。转码允许观众以不同的分辨率观看视频,因此需要的带宽较低。Twitch 只向合作伙伴提供有保证的转码;非合作伙伴可能会获得转码,但不能做出保证。这一点很重要,特别是如果您的观众使用的是手机,或者他们的网速不够快。您可能需要考虑以较低的码率和分辨率进行串流,以降低观看您的频道所需的带宽。

推荐设置

这些是我们为 OBS Studio 23.0 及更高版本推荐的设置。您希望通过本地录制来测试并调整这些设置,从而验证对结果的满意度。

如要转至这些设置,请单击右下方的“Settings”(设置)按钮。

视频选项卡设置

  • 基础(画布)分辨率:设置玩游戏时通常所用的分辨率,即您的桌面分辨率(如果在无边框模式下玩游戏),或您通常输入的游戏分辨率(如果在全屏模式下玩游戏)。
  • 输出(缩放)分辨率:输入适合您的上传速度和码率的分辨率,如上一部分中所述。
  • 缩放过滤器:这允许您选择一个缩放过滤器,以增加一些编码器工作负载为代价提供一定的图像清晰度增强。NVENC 非常高效,通常在低系统占用率下运行,因此我们建议将其与 Lanczos(32 个样本)选项一起使用,以获得最佳质量。
  • 常见的FPS值:输入适合您的上传速度和码率的 FPS,如上一部分中所述。

输出选项卡设置

如果您想要一个简单的开箱即用配置,请进行以下设置:

  • 输出模式:简单
  • 串流
    • 视频比特率:输入适合您的上传速度的码率,如上一部分中所述。
    • 编码器:选择硬件 (NVENC)。
    • 启用高级编码器设置:取消选中。我们与 OBS 协作微调了这些设置,已能保证其正常工作!
    • 编码器预设:质量。这已是默认选项。请注意,只有在选中“Enable Advanced Encoder Settings”(启用高级编码器设置)时才显示该选项。
  • 录像
    • 录像路径:这是保存视频的目录。确保您选择的硬盘有足够的空间!
    • 录像质量:“高质量”通常适用于大多数用户,但如果您有足够的磁盘空间或准备做短视频(约 60秒),则可以将其更改为“近似无损的质量”。
    • 录像格式:FLV。
    • 编码器:硬件 (NVENC)。

其他设置

为确保流畅的传输,您还需要配置 2 项其他设置:

  • Windows:禁用游戏模式。当游戏运行时,此模式会降低任何其他程序(包括串流所需的程序)的性能。
  • 游戏:确保游戏使用的 GPU 资源少于 90%。Windows 会降低任何超过该值的后台应用程序的优先级。您可以在 Windows 任务管理器 > 性能选项卡中检查 GPU 利用率。为了限制 GPU 的使用,您可以降低游戏的图形渲染复杂度或分辨率,启用无边框窗口模式进行游戏,设置游戏中的 FPS 上限,或者打开 V-Sync。

这样就完成了设置!我们希望这能帮助您改善串流质量并达到您的目标。如果这对您有用,或者您希望我们在指南中更新其他信息,请给我们留言。祝您直播愉快!

高级设置

如果您想修改所有设置,以下是我们的更深入的建议。

串流设置

  • 输出模式:高级。这将使您可以访问所有设置。开始吧!
  • 编码器:选择 NVIDIA NVENC H.264(new)。
  • 强制流服务编码器设置:保持勾选状态,这将确保如果您输入了一个错误的值,它将得到更正。
  • 速率控制:选择 CBR。这决定了帧的编码速率。
  • 比特率:输入适合您的上传速度的码率,如上一部分中所述。请记住,一些平台有最大码率(即,Twitch 目前是 6000 Kbps)。
  • 关键帧间隔:设置为 2。直播平台可能会限制您在此处可以选择的数值,大多数需要设置为 2。
  • 预设:选择“Quality”(质量)。您可以将其更改为“Max Quality”(最高质量)以实现 2 次编码;此设置会小幅提升质量,但在 GPU 占用率 100% 等受限情况下可能会带来一些问题。
  • Profile:设置为“high”。配置文件确定了 H.264 编解码器中的一组设置。它不会影响性能,同时提供了对串流至关重要的一组功能的访问权限,因此应始终将其设置为“high”。
  • 超前控制:勾选此选项。此选项支持编码器动态选择 B 帧的数量,可选范围介于 0 到您指定的 B 帧数量之间。B 帧可提升图像质量,因此十分有用,但它们也会耗用大量可用的比特率,由此降低高速运动场景的质量。“Look-ahead”(预览)选项有助于实现两全其美的结果。此功能经由 CUDA 加速;若 GPU 利用率较高,您可关闭该功能,确保流畅直播。
  • 心理视觉调整:勾选。这样可以在编码器中启用速率失真优化,从而大大优化码率的使用方式,提高运动时的图像质量。
  • GPU:0。如果系统中有 2 个 GPU,您可以选择用于编码的 GPU。但不建议这样做,因为 NVENC 已经非常高效,而且因为要将帧复制到第二个 GPU,使用第二张卡所能获得的有限的收益会损失。
  • 最大 B 帧:设为 4。如果您取消选中“Look-ahead”(预览)选项,请将 B 帧数量从 4 降至 2。,您可以将其增加到 4。B 帧提高了图像质量,但消耗了码率,从而降低了运动时的图像质量。如果您在串流中看到像素化或伪影,您可能需要降低这一数值。

录像设置

  • 类型:标准。
  • 录像路径:这是保存视频的目录。确保您选择的硬盘有足够的空间!
  • 录像格式:FLV;或者 MKV,如果您使用多音轨。
  • 音轨:保留 1 为默认值;如果您正在使用更多来源,则可以添加更多音轨。
  • 编码器:NVIDIA NVENC H.264(new)。
  • 速率控制:尽管 VBR 也能产生良好结果,但我们建议使用 CQP。
    • CQ 级别 (CQ):15(您可以减少此数量以获得更高质量)。
    • 码率和最大码率 (VBR):40,000 码率;60,000 最大码率。您可以将这两个值分别提高到 100,000 和 200,000,以获得更高的质量。
  • 关键帧间隔:0 或 2。
  • 预设:选择“Quality”(质量)。您可以将其更改为“Max Quality”(最高质量)以实现 2 次编码;此设置会小幅提升质量,但在 GPU 占用率 100% 等受限情况下可能会带来一些问题。
  •  Profile:设置为“high”。
  • 超前控制:勾选。
  • 心理视觉调整:勾选。
  • GPU:0。如果系统中有 2 个 GPU,您可以选择用于编码的 GPU。
  • 最大 B 帧:设为 4。如果您取消选中“Look-ahead”(预览)选项,请将 B 帧数量从 4 降至 2。

NVENC 介绍

NVENC 是 NVIDIA 的编码器。它是我们 GPU 的一个物理部分,专用于编码。这意味着无论您使用此编码器进行串流还是录像,您的 GPU 都可以正常运行。x264 等其他编码器使用 CPU 进行编码,这会占用游戏等其他程序的资源。这就是为什么使用 NVENC 可以让您以更高的帧速率玩游戏,避免卡顿,给您和观众更好的体验。

在过去的两代 GPU 中,我们对 NVENC 做出了很大的改进,帮助实现了一流的输出质量。GTX 10 系列 GPU 中的 NVENC 提供了比 x264 Very Fast(最常用的 x264 预设)更高的质量。在新的 RTX 20 系列中,NVENC 的性能比 x264 Fast 更好,与 x264 Medium 相当,后者是一种需要昂贵的双电脑设置的预设。

在 RTX 20 系列中,NVENC 的一个优点是,GeForce RTX 20 系列和 GeForce GTX 1650 Super 及更高版本,所有 GPU 都具有相同的 NVENC,具有相同的性能和质量。NVENC 还受益于我们自己的 NVIDIA Video Codec SDK,这是一套高级工具,有助于提高编码质量,我们不断更新,以帮助您从 NVIDIA 卡中获得最佳效果。

最后,如果您正在使用 NVIDIA GPU,您可以使用 GeForce Experience 的 游戏滤镜FreeStyle,该滤镜允许您通过软件实现增强颜色、增加清晰度或引入酷炫效果,从而进一步提高观众的图像质量。

 

GEFORCE 优化的 OBS STUDIO 新版本介绍

我们与 OBS 合作,改善了对 NVIDIA GeForce GPU 的支持。新的 OBS Studio 23.0 版本将利用 NVIDIA Video Codec SDK 显著提高性能,降低串流和录像的 FPS 影响。我们也调整了一些 NVENC 的后台设置以改善质量,尤其是针对 RTX 20 系列 GPU。

如何调试问题

串流可能非常复杂,但尤其困难的地方在于调试。当进行串流时,有很多组件在运行,因此我们将尝试为您提供一些帮助,以便您可以识别哪里出了问题,以及如何修复。

组件

串流使用以下组件:

  • 个人电脑:这包括了硬件和软件。
  • 本地网络:WiFi 或有线互联网 + 路由器。
  • 网络连接:连接到服务提供商。
  • 直播平台:Twitch、YouTube、Mixer 等。
  • 观众的网络:通常是 Wi-Fi,但也有可能是 3G/4G。
  • 观众的设备:请记住,35% 的 Twitch 观众使用的是移动设备。

如果出现了直播故障,我们首先要确定哪个组件可能出现了问题,这样我们就不会疯狂地尝试修复从一开始就没有损坏的组件。通常,这意味着您应该做的第一个测试是网络速度测试,以确保您的本地网络和互联网连接中没有网络问题。其次,确保平台没有发出关闭或遇到问题的警告。然后根据您遇到的错误,开始逐个查看您个人电脑上的组件。

如何检查编码器的运行情况

OBS Studio 包含了一个非常有用的工具:统计窗口。要启用该工具,点击“查看”>“统计”。该窗口将显示延迟的帧、跳过的帧、丢弃的帧和编码器 FPS。

常见错误类型

串流未及期望 FPS。对于 FPS相关问题,OBS 在程序的右下角包含了一个 FPS 计数器。如果您遇到 FPS 问题,请确保您的内容和 OBS 以等于或高于所需 FPS 的速度运行。如果您的内容有问题,请降低游戏设置,以便获得更高 FPS。如果 OBS 丢失 FPS,请尝试下面的 GPU 过载解决方法。如果都不是这些问题,则可能是网络问题。

GPU 过载。要确定该问题,请打开“Windows 任务管理器”,转到“性能”选项卡并单击 “GPU”。您将可以看到 GPU 每个部分的负载。如果“视频编码”部分高于 90%,您可能遇到了编码器过载问题。这是 Windows 造成的,因为它取消了 OBS 的优先级,以为游戏提供更多的资源。要修复这一问题,我们建议您依次尝试这些方法,直到 GPU 负载低于 90%:

  • 降低游戏视频设置。
  • 如果您正在使用 4K 或 1440p 玩游戏,请将游戏分辨率分别降低到 1440p 或 1080p。为使其生效,请确保游戏在全屏模式(而不是无边框模式)下运行。
  •  限制游戏 FPS。有些游戏允许您直接执行此操作,或者您可以通过打开 V-Sync 设置来执行此操作。

在某些情况下,关闭“超前控制”和“心理视觉调整”功能可能有助于缓解此问题。要执行此操作,请前往“设置”>“输出”,然后将“输出”模式更改为“高级”。然后取消勾选这 2 个选项。

编码器过载。您可以通过 OBS 底部栏中的错误消息来确定这一问题,该消息告诉您编码器已过载。这在使用 NVENC 时非常罕见。要确定该问题,请打开“Windows 任务管理器”,转到“性能”选项卡并单击 “GPU”。“视频编码”部分(左侧第二个图形)显示了编码器负载。如果这一数值超过 95%,则您可能遇到了这一问题。有 2 种设置可以帮助解决这一问题:

  • 第一种方法是在“OBS 设置”的“视频选项卡”中更改“缩放过滤器”,从“Lanczos”更改为“双直线法”。这一操作收效甚微,但可以将负载降低到 95% 以下。
  • 第二种方法是在“OBS 设置”的“输出选项卡”中更改“编码器预设”,从“最高质量”更改为“质量”。

图像看起来有褪色效果。最有可能的问题是试图在不具备足够码率的情况下提高质量。请考虑降低分辨率和帧率(如果需要),然后重试。如果质量得到提高,则继续调整,直到找到最佳效果位置。