NVIDIA NVENC OBS 指南

由 Gerardo Delgado Cabrera 发表于 2019年2月26日

关于本指南

本指南的目的是帮助您理解如何在 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

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(36 个样本)选项一起使用,以获得最佳质量。
  • 常见的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。

通过 HEVC 和 HDR 进行录制和直播

借助 OBS 28.0,您可以在支持 HEVC 的平台上进行直播。HEVC 是一款改良过的编解码器,其编码效率比 H.264 高 15%(其效果相当于用 15% 的更高比特率进行直播)。借助 HEVC 和 OBS 28.0,您还可以录制和直播 HDR 内容。

如何使用 HEVC 进行录制和直播

如要使用 HEVC 进行录制或直播,请在 OBS 中导航至“Output”(输出)窗口,然后在“Streaming”(直播)或“Recording”(录制)设置下根据需要将编码器更改为“Hardware (NVENC, HEVC)”(硬件(NVENC、HEVC))。

Screenshot1

如果您想使用 HEVC 进行直播,您还必须调整“Stream”(直播)设置。请注意,目前仅 YouTube 支持 HEVC 直播。如要使用 HEVC 在 YouTube 上直播,请导航至“Stream”(直播)选项卡,并将“Service”(服务)更改为“YouTube - HLS”。您可能需要点击“Show All…”(显示全部)以找到此选项。

Screenshot2

完成上述步骤后即可连接您的 YouTube 帐户。

最后,在 YouTube.com 上导航至“YouTube Live”(YouTube 直播)设置,并确保您将“Latency”(延迟)设置调为“Low”(低)或“Normal”(正常)(请勿设为“Ultra Low”(超低),因为不兼容)。

Screenshot3

以 HDR 进行录制和直播

您可使用 HDR(高动态范围)提高内容的光影效果。您可以使用 HDR 进行录制和直播。

请注意:

  • 在非 HDR 显示器中,HDR 内容看上去会如同褪色一般,因此如果您的显示器不支持 HDR,或者您要直播的平台不支持 HDR,则请勿开启此功能。
  • HDR 需要采用 HEVC 编码;HDR 与 H.264 不兼容。

如要启用 HDR,您需要确保:

  1. 拥有一台 HDR 显示器。
  2. 在 Windows 和游戏设置中已启用 HDR。
  3. 在 OBS 中配置完整工作流以启用 HDR。
Windows 和游戏设置
 
首先,确保您已在 Windows 的“显示”设置中启用 HDR。在桌面单击右键打开“显示设置”,然后启用“使用 HDR”。
Screenshot4

接着,打开要录制或直播的游戏,前往设置并确保已启用 HDR。Windows 11 推出的“自动 HDR”功能可为所有游戏启用虚拟 HDR 模式。此选项也有助于您进行录制和直播。

OBS 设置

在 OBS 中,首先转到“Advanced”(高级)选项卡,将“Color Format”(色彩格式)更改为“P010”,然后将“Color Space”(色彩空间)更改为“Rec. 2100 (PQ)”。

Screenshot5

接下来,调整“Game Capture”(游戏截取)源。双击“Game Capture”(游戏截取),或右键单击并转到“Properties”(属性),向下滚动找到“RGB10A2 Color Space”(RGB10A2 色彩空间)。请确保将此选项设置为“Rec. 2100 (PQ)”。

Screenshot6

完成设置后即可使用 HDR 功能截取游戏内容或进行直播!请注意,如要以 HDR 进行录制和直播,请将编码器从 H.264 更改为 HEVC。您可以查看上文“如何使用 HEVC 进行录制和直播”部分了解设置 HEVC 的方法。

NVIDIA Broadcast 简介

NVIDIA Broadcast 借助 AI 的强大功能,将普通摄像头和麦克风升级为高端智能设备,从而将游戏场所变成家庭直播工作室。 通过虚拟背景、人像跟踪和麦克风降噪等 AI 功能,提高直播的视频和音频质量。通过在 GeForce RTX GPU 上搭载名为 Tensor Core 的专用 AI 处理器,AI 网络能够实时运行高质量的效果。

NVIDIA Broadcast 功能包括:

  • 降噪:使用 AI 从麦克风源中去除嘈杂的机械键盘或电流杂音等背景噪声。AI 网络还可以用于处理传入音频源,为开着自由麦的好友过滤噪音。
  • 虚拟背景:利用 AI 技术删除网络摄像头源的背景,并将其替换为游戏画面、其他替换图像,甚至进行巧妙的模糊处理。
  • 人像跟踪:利用 AI 技术跟踪您的头部运动,缩放和自动裁剪头部画面,即使您四处走动,也能始终保持聚焦。

不进行直播时,此类功能还能加强视频电话会议和语音聊天质量,让 NVIDIA Broadcast 成为直播者和游戏玩家理想的 AI 伴侣。

NVIDIA Broadcast 可与多种广播、视频会议和语音聊天应用程序兼容。其中包括 OBS Studio、Streamlabs、XSplit、Discord、Skype、Zoom、Webex、Microsoft Teams、Google Meet 等。

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 设置”的“输出选项卡”中更改“编码器预设”,从“最高质量”更改为“质量”。

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