NVIDIA NVENC OBS 指南

由 Gerardo Delgado Cabrera 发表于 2024年9月16日 | 直播 指南 串流

关于本指南

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

编码器、码率、分辨率和帧率

概述

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

GeForce RTX GPU 具有专用硬件编码器 (NVENC),可使您在不影响 GPU 或 CPU 性能的情况下录制内容或推流。 新一代 RTX GPU 支持更新版、更高效的编解码器。 可以通过以下两种方式之一来考虑更高效编解码器的好处:

  1. 以相同画面质量进行编码,使用更高效的编解码器将比效率较低的编解码器占用更少的磁盘空间和更低的带宽
  2. 在相同的文件大小或带宽下,使用更高效的编解码器编码的视频画面质量将高于效率较低的编解码器

编解码器的相对压缩效率

H.264

HEVC

AV1

1.0x

1.15x

1.40x

 

RTX GPU 系列

H.264

HEVC

AV1

RTX 20 系列

支持

支持

不支持

RTX 30 系列

支持

支持

不支持

RTX 40 系列

支持

支持

支持

直播平台可能不全部支持所有编解码器。 下表列出了主流直播服务的编解码器支持情况。

直播平台

H.264

HEVC

AV1

Facebook Gaming

支持

不支持

不支持

Twitch

支持

不支持

不支持

YouTube

支持

测试版

测试版


如何确定您的比特率

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

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

 

分辨率

上行带宽

比特率

H.264

HEVC

AV1

4 Mbps

3 Mbps

576p

720p

720p

5 Mbps

4 Mbps

720p

720p

1080p

8 Mbps

6 Mbps

720p

1080p

1080p

10 Mbps

8 Mbps

1080p

1080p

1440p

12 Mbps

10 Mbps

1080p

1440p

1440p

15 Mbps

12 Mbps

1080p

1440p

4K

20 Mbps

15 Mbps

1080p

4k

4K

25 Mbps

20 Mbps

4k

4k

4K

50 Mbps

40 Mbps

4k

4k

4K

  • 高动态内容的重要注意事项。如果您要串流高动态场景(如赛车游戏、第一人称射击游戏等),我们强烈建议降低分辨率。高动态内容不能被压缩太多,并且可能产生更多伪影(编码错误),使您的视频流看起来呈“块状”。如果降低分辨率,就会减少编码的数据,从而得到更高的观看质量。例如,对于《堡垒之夜》,许多直播者采用 1280x720 60 FPS、6,000 Kbps 的码率进行串流,而不是 1920x1080。
  • 未来在 Twitch 上新的直播者需要注意的重要事项。转码允许观众以不同的分辨率观看视频,因此需要的带宽较低。Twitch 只向合作伙伴提供有保证的转码;非合作伙伴可能会根据服务器载荷情况获得转码。这一点很重要,特别是如果您的观众使用的是手机,或者他们的网速不够快。您可能需要考虑以较低的码率和分辨率进行串流,以降低观看您的频道所需的带宽。

推荐设置

这些是我们为 OBS Studio 29.1 及更高版本推荐的设置。如要转至这些设置,请单击右下方的“Settings”(设置)按钮。

视频选项卡设置

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

串流选项卡设置

选择要连接的直播平台。您可以选择使用登录凭据登录到您的服务。另一种方法是输入“Stream Key”(流密钥)

  • 重要提示:小心保管您的流密钥!任何拥有它的人都可以掌控您的串流。

按照以下说明查找 YouTube、Twitch 或 Facebook Gaming 的流密钥。

输出选项卡设置

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

  • 输出模式:简单
  • 串流:
    • 视频比特率:输入适合您的上传速度的码率,如第一部分中所述。
    • 编码器:这里我们将选择使用什么硬件进行编码,以及使用什么编解码器。
      • 对于 Twitch,选择硬件 (NVENC, H.264)。
      • 对于 YouTube,如果您使用 RTX 40 系列 GPU,选择硬件 (NVENC, AV1),其它 GeForce 型号则选硬件 (NVENC, HEVC)。
    • 编码器预设:以牺牲编码器的性能为代价的前提下,预设决定了编码的质量。 大多数用户应该选择 P6:较慢(质量更好)。 如果您尝试同时进行多个编码,您需要降低此当前值以免编码器过载。
  • 录像:
    • 录像路径:这是保存视频的目录。确保您选择的硬盘有足够的空间!
    • 录像质量:“高质量”通常适用于大多数用户,但如果您有足够的磁盘空间或准备做短视频(约 60秒),则可以将其更改为“近似无损的质量”。
    • 录像格式:MKV
    • 编码器:对于本地录制,您需要确保录制的格式能够在您将使用该文件的程序中读取。AV1 提供最佳质量,其次是 HEVC,最后是 H.264。但是 H.264 与应用的兼容性最好,因此如果您在使用其他 2 个编码器时遇到任何问题,您可以选回 H.264。

其他设置

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

  • Windows 游戏模式:启用游戏模式。 提高游戏和流媒体软件的优先级,以便它们运行得流畅。
  • GPU 利用率:如果您的 GPU 利用率高于 95%,Windows 将提高游戏的优先级;在某些情况下,这会使您的推流延迟。为了解决这个问题,Windows 添加了一个新的调度系统,称为硬件加速 GPU 调度。 这将自动平衡您系统上的不同工作负载,以便您的游戏、流媒体和其他应用(如 VTubing 应用)可以同时运行。 在系统 -> 显示 -> 图形 -> 默认图形设置下验证或更改 Windows 控制面板中的设置。

如果出于某种原因,硬件加速 GPU 调度无法解决问题,OBS 在 OBS 24.0.3 中添加了一个选项,以优先考虑 OBS Studio。 只需以管理员身份运行 OBS,您的直播就会如丝般顺畅。

如果您不想在 Admin 模式下运行 OBS,仍将 GPU 使用率限制在 95% 阈值以下。 您可以:

  • 设置游戏中的 FPS 上限,以无边框窗口模式进行游戏,降低游戏的图形渲染复杂度或分辨率,或者打开 V-Sync。
  • 以 1080p 运行所有程序。为此,请双击 OBS 中的源,并在“分辨率”下选择“自定义”,然后指定等于或低于 1080p 的分辨率。

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

Twitch Enhanced Broadcasting

当你直播时,你实际上是以特定的比特率发送视频。某些用户可能没有足够的带宽来观看你的频道,使直播画面变得卡顿。为了解决这个问题,Twitch 等平台提供了转码服务。他们创建了具有不同带宽的不同串流版本,为每个用户提供他们可以流畅观看的最佳版本。其挑战在于,这个过程所需的成本非常高昂,只能为最热门的频道提供。

为了解决这个问题,Twitch 发布了 Enhanced Broadcasting。借助该功能,你可以使用 RTX GPU 创建多个串流版本并将其推流到 Twitch。此外,视频编码设置会根据你的硬件自动进行选择,使你可以更轻松地配置硬件或 OBS。由于所有的编码工作都在本地完成,Twitch 也会利用该功能测试新的编解码器。

启用 Twitch Enhanced Broadcasting 的步骤如下:

  1. 下载或更新至最新的 OBS 30.2
  2. 在“设置 -> 直播”下,登录 Twitch
  3. 在新的“多轨道视频”设置下,选中“Enable Enhanced Broadcasting
  4. 将“最大直播带宽”和“最大视频轨道数”保持为“自动”状态

高级设置

如果您想自定义所有设置,以下是我们的更进一步的建议。

串流设置

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

录像设置

  • 类型:标准。
  • 录像路径:这是保存视频的目录。确保您选择的硬盘有足够的空间!
  • 录像格式: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。

录制和直播 HDR

借助 OBS 28.0 或更新版本,您可以录制 HDR 并串流到兼容服务中。目前,您可以借助 HEVC 和 AV1 截取 HDR 内容,但只有 YouTube 支持 HDR 流式传输,并且仅支持 HEVC。

以 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)”。

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

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

如何使用 HEVC 将 HDR 流式传输到 YOUTUBE

如果您想使用 HDR 流式传输到 YouTube(目前仅支持服务),请确保您使用的是 HEVC 编码器,并将您的配置文件调整为 main10。

最后,在 YouTube.com 上导航到您的 YouTube Live 设置,并确保您的延迟设置设置为低或正常(不要使用超低,因为它不兼容)。

NVENC 介绍

NVIDIA 的编码器(简称 NVENC)是我们 GPU 硬件组成的一部分,专用于编码。 这意味着无论您使用此编码器进行直播还是录像,您的 GPU 都可以正常运行。 x264 等其他编码器使用 CPU 进行编码,这会占用游戏等其他程序的资源。 像 AV1 这样的高级编解码器不能在用户 CPU 上运行。这就是为什么使用 NVENC 可以让您以更高的帧率畅玩游戏,避免卡顿,给观众更好的体验。

编解码器效率对视频质量起着重要作用,尤其是在直播等低比特率情况下。 与效率较低的编解码器相比,更高效的编解码器需要更少的码流(因此带宽更低)才能实现相同画面质量。 最新的 AV1 编解码器的效率比 H.264 高约 40%。

这对直播意味着什么? 非常容易理解! 使用相同的带宽可以获得更好的画面质量。 上传带宽是大多数流媒体主播几乎无法控制的变量,因此编解码器效率通常是影响流媒体质量的最大因素。

上传带宽可能受到 ISP 或流媒体服务上限的限制,平均下降到 6-15 Mbps 之间。 以这种上传速度流式传输 H.264 编码的 4K/60 fps 视频会产生令人不快的块状、颗粒状视频。 流式传输使用 AV1 编码的相同视频可显着提高质量。

4K 视频质量对比:10Mbps 下的 H.264 与 AV1

NVIDIA 还与 OBS 密切合作,帮助针对 NVIDIA GPU 优化 OBS Studio,提高性能并启用最新和最出色的质量功能。

NVENC 的另一个优势是,通常每一代 GPU 使用相同版本的 NVENC。 例如,GeForce RTX 4090 和 GeForce RTX 4050 都具有相同的编码器质量。 如果您想为您的第二台 PC 获得另一个 GPU 进行编码,这是有益的(并且预算友好!)。 但是,GeForce RTX 4090、4080 和 4070 Ti GPU 确实提供双编码器以提供额外的容量,这很有用,因为您可以以更高分辨率和 FPS(高达 8K60)进行编码,或者支持更多同步编码(例如,如果您想要流式传输到多个平台)。

最后,如果您使用的是 NVIDIA GPU,则可以访问 GeForce Experience 的游戏滤镜,它允许您通过软件通过增强色彩、增加清晰度或引入炫酷效果来进一步提高观众的图像质量。

NVIDIA Broadcast 简介

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

NVIDIA Broadcast 功能包括:

  • 降噪:使用 AI 从麦克风源中去除嘈杂的机械键盘或电流杂音等背景噪声。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 设置”的“输出选项卡”中更改“编码器预设”,从“最高质量”更改为“质量”。

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