NVIDIA 视频编解码器 SDK

API 集合全面,包含高性能工具、示例和文档,用于在 Windows 和 Linux 上执行硬件加速视频编码和解码。

开始使用
为后续版本通知我

img-alt-text

NVENC 和 NVDEC 在消费级笔记本电脑、台式机和数据中心上支持的视频应用和流式传输功能可确保跨平台优化性能。

基于硬件的解码器和编码器

NVIDIA GPU 包含一个或多个基于硬件的解码器和编码器 (独立于 CUDA 核心),可为几种热门的编解码器提供基于硬件的全加速视频解码和编码。这提供了两个好处:

  • 卸载解码/编码后,计算引擎和 CPU 可以自由执行其他操作。

  • 任何需要按顺序进行视频和 GPU 计算的处理管道的运行效率都要高得多。这是因为视频解码器的输出可以直接提供给 GPU 计算,而 GPU 计算的输出可以直接提供给视频编码器,而无需任何额外的内存/PCIe 传输。

用于视频编码 (简称 NVENC) 和视频解码 (简称 NVDEC) 的 GPU 硬件加速器引擎支持比实时更快的视频处理速度,因此适合用于多个应用,包括视频转码、用于深度学习的视频数据压缩/解压缩、游戏直播、虚拟桌面、云游戏、安全视频播放等。Video Codec SDK 提供的 API 可让您利用 NVENC 和 NVDEC 实现这些引擎的所有视频编码/解码功能。NVIDIA 的最新 GPU 架构 Blackwell 进一步增强了 NVENC 和 NVDEC 的性能和质量。SDK v12.2 中引入的 HEVC 超高质量 (UHQ) 模式扩展到 SDK v13.0 中的 AV1 (2025 年 1 月)。此外,Blackwell 架构支持 422 H.264、422 HEVC、422i、422i H.264、多视图 HEVC,并提高了每个 NVDEC 的 H.264 吞吐量。

硬件加速视频编码 – NVENC

NVIDIA GPU 包含片上硬件加速视频编码器 (NVENC),可为 H.264、HEVC (H.265) 和 AV1 编解码器提供视频编码功能。

SDK v13.0 中的软件增强功能可将超高质量 (UHQ) 模式扩展到 AV1 编码。这使得 Blackwell NVENC 上的 AV1 编码可美软件 AV1 编码,吞吐量约为原来的 3 倍。UHQ HEVC 模式是在 Ada 架构的 SDK v12.2 中引入的。

Blackwell 在硬件中引入了 422 渐进式和交错编码和解码支持,为媒体和娱乐、视频编辑和广播领域的专业用例提供支持。多个 NVENC 协同工作,可在 60FPS+下实现高达 8K 视频的性能。

Video Codec SDK 13.0 还引入了用于硬件加速立体编码的 MV-HEVC,以解决广播、汽车和 AR/VR 头盔中的用例。

通过在视频编解码器 SDK 中使用丰富的 API,NVENC 可用于需要低至云游戏延迟、高达 OTT 流式传输和工作室广播质量的各种用例。NVIDIA 的 Python 视频绑定 (例如 PyNvVideoCodec) 使深度学习应用程序能够利用 NVENC 的强大功能进行视频数据管护和存档。

注意:这些图表展示了 NVIDIA 数据中心 A10、L4 和 L40S 的性能。

节省的比特率是基于 PSNR 的 BD-BR,使用 FFmpeg 对大量内容 (数百个视频片段) 实现平均值。

为清晰起见,基准图中仅显示数据中心 GPU,但具有相同架构的同等工作站 GPU 的表现与之相似。如需详细了解用于生成上述数据的硬件详情、流程和软件配置,请参阅此详细文档
GPU H.264 (AVCHD) YUV 4:2:0 H.264 (AVCHD) YUV 4:4:4 H.264 (AVCHD) LOSSLESS H.265 (HEVC) YUV 4:2:0 H.265 (HEVC) YUV 4:4:4 H.265 (HEVC) LOSSLESS AV1
MAX Color MAX Res. MAX Color MAX Res. MAX Color MAX Res. MAX Color MAX Res. MAX Color MAX Res. MAX Color MAX Res. MAX Color MAX Res.
Maxwell (1st Gen)* 8-bit 4096 x 4096 8-bit 4096 x 4096 8-bit 4096 x 4096 N/A N/A N/A N/A N/A N/A N/A N/A
Maxwell (2nd Gen) 8-bit 4096 x 4096 8-bit 4096 x 4096 8-bit 4096 x 4096 8-bit 4096 x 4096 N/A N/A N/A N/A N/A N/A
Maxwell (GM206) 8-bit 4096 x 4096 8-bit 4096 x 4096 8-bit 4096 x 4096 8-bit 4096 x 4096 8-bit 4096 x 4096 8-bit 4096 x 4096 N/A N/A
Pascal 8-bit 4096 x 4096 8-bit 4096 x 4096 8-bit 4096 x 4096 10-bit 8192 x 8192** 10-bit 8192 x 8192** 10-bit 8192 x 8192** N/A N/A
Volta 8-bit 4096 x 4096 8-bit 4096 x 4096 8-bit 4096 x 4096 10-bit 8192 x 8192 10-bit 8192 x 8192 10-bit 8192 x 8192 N/A N/A
Turing 8-bit 4096 x 4096 8-bit 4096 x 4096 8-bit 4096 x 4096 10-bit 8192 x 8192 10-bit 8192 x 8192 10-bit 8192 x 8192 N/A N/A
Ampere
(A100)
No No No No No No No No No No No No No No
Ampere
(non A100)
8-bit 4096 x 4096 8-bit 4096 x 4096 8-bit 4096 x 4096 10-bit 8192 x 8192 10-bit 8192 x 8192 10-bit 8192 x 8192 N/A N/A
Ada 8-bit 4096 x 4096 8-bit 4096 x 4096 8-bit 4096 x 4096 10-bit 8192 x 8192 10-bit 8192 x 8192 10-bit 8192 x 8192 10-bit 8192 x 8192

* Except GM108 and GP108 (not supported)

** Except GP100 (is limited to 4K resolution)

硬件加速视频解码 – NVDEC

NVIDIA GPU 包含片上硬件加速视频解码器 (NVDEC),可为几种热门的编解码器提供视频解码功能。

借助 Video Codec SDK 中的 API,软件开发者能够在许多用例中利用 NVDEC 的强大功能,包括安全视频播放等传统用例,以及用于 DNN 训练和推理的加速视频数据的提取和解码。

NVDEC 支持在 Windows 和 Linux 平台上对以下视频编解码器进行硬件加速解码:MPEG-2、VC-1、H.264 (AVCHD)、H.265 (HEVC)、VP8、VP9 和 AV1 (有关每代 GPU 的编解码器支持,请参阅下表)。

借助 Blackwell GPU,NVDEC 可将 H.264 解码的视频解码吞吐量翻倍,并为 H.264 和 HEVC 编解码器增加了对 422 解码的支持。

GPU *H.265 (HEVC) 4:4:4 H.265 (HEVC) 4:2:0 H.264 (AVCHD) 4:2:0 VP9 VP8 MPEG-2 VC-1 AV1
MAX Color MAX Res. MAX Color MAX Res. MAX Color MAX Res. MAX Color MAX Res. MAX Color MAX Res. MAX Color MAX Res. MAX Color MAX Res. MAX Color MAX Res.
Kepler N/A N/A N/A N/A 8-bit 4096 x 4096 N/A N/A N/A N/A 8-bit 4080 x 4080 8-bit 2048 x 1024 N/A N/A
Maxwell (1st Gen)* N/A N/A N/A N/A 8-bit 4096 x 4096 N/A N/A N/A N/A 8-bit 4080 x 4080 8-bit 2048 x 1024 N/A N/A
Maxwell (2nd Gen) N/A N/A N/A N/A 8-bit 4096 x 4096 N/A N/A 8-bit 4096 x 4096 8-bit 4080 x 4080 8-bit 2048 x 1024 N/A N/A
Maxwell (GM206) N/A N/A 10-bit 4096 x 2304 8-bit 4096 x 4096 8-bit 4096 x 2304 8-bit 4096 x 4096 8-bit 4080 x 4080 8-bit 2048 x 1024 N/A N/A
Pascal N/A N/A 12-bit 8192 x 8192** 8-bit 4096 x 4096 12-bit**** 8192 x 8192** 8-bit 4096 x 4096*** 8-bit 4080 x 4080 8-bit 2048 x 1024 N/A N/A
Volta N/A N/A 12-bit 8192 x 8192 8-bit 4096 x 4096 12-bit 8192 x 8192 8-bit 4096 x 4096 8-bit 4080 x 4080 8-bit 2048 x 1024 N/A N/A
Turing 12-bit 8192 x 8192 12-bit 8192 x 8192 8-bit 4096 x 4096 12-bit 8192 x 8192 8-bit 4096 x 4096 8-bit 4080 x 4080 8-bit 2048 x 1024 N/A N/A
Ampere
(A100)
12-bit 8192 x 8192 12-bit 8192 x 8192 8-bit 4096 x 4096 12-bit 8192 x 8192 8-bit 4096 x 4096 8-bit 4080 x 4080 8-bit 2048 x 1024 N/A N/A
Ampere
(non A100)
12-bit 8192 x 8192 12-bit 8192 x 8192 8-bit 4096 x 4096 12-bit 8192 x 8192 8-bit 4096 x 4096 8-bit 4080 x 4080 8-bit 2048 x 1024 10-bit 8192 x 8192
Ada 12-bit 8192 x 8192 12-bit 8192 x 8192 8-bit 4096 x 4096 12-bit 8192 x 8192 8-bit 4096 x 4096 8-bit 4080 x 4080 8-bit 2048 x 1024 10-bit 8192 x 8192

* Except GM108 (not supported)

** Max resolution support is limited to selected Pascal chips

*** VP8 decode support is limited to selected Pascal chips

**** VP9 10/12 bit decode support is limited to select Pascal chips


视频编解码器 API

十多年来,NVIDIA 一直通过 NVIDIA Video Codec SDK 在 GPU 上提供硬件加速的视频处理功能。

Video Codec SDK 包含一整套 API、高性能工具、示例应用、可重复使用的代码和文档,用于在 Windows 和 Linux 上执行硬件加速视频编码和解码。

NVIDIA 视频编解码器 SDK 中的 NVENCODE 和 NVDECODE API 是 C 样式的 API,可分别用于使用 NVENC 和 NVDEC 进行高性能编码和解码。它们提供了大部分硬件功能以及常用的其他编解码器功能。Video Codec SDK 还以基于 NVENCODE/NVDECODE API 的 C++类的形式提供了一组可重复使用的代码,这些应用可以轻松集成。NVENCODE/NVDECODE API 本质上是全面的,并且提供了大量的编解码器功能,包括高级功能。

另一方面,DirectX 和 Vulkan Video 提供与硬件无关的低级 API,并尝试对资源/内存分配、任务调度和向视频硬件引擎提交的工作提供更精确的控制。

无论您偏好 DirectX 还是 Vulkan,都可以使用您选择的语言将灵活的 GPU 加速视频编码和解码与其他 GPU 加速 (如 3D 和 AI) 结合起来。

低级 Vulkan Video 扩展程序对于热门开源流媒体框架的开发者也很有吸引力,例如 GStreamer 以及 FFmpeg 正在主动将两者移植到 Vulkan Video。Vulkan 的跨平台可用性将能够跨多个平台加速这些框架的 GPU 处理,而无需移植到多个专有视频 API。请参阅 Vulkan 视频入门页面了解更多详情。

PyNvVideoCodec 是 2023 年第四季度推出的另一组 API,可提供简单的 API,以便在使用 Python 处理视频时利用视频编码和解码功能。PyNvVideoCodec 库通过 C++API 提供 Python 绑定,用于硬件加速视频编码和解码。PyNvVideoCodec 的主要优势包括:简单的安装流程、具有高级功能的简单 API,以及与 PyTorch 等许多深度学习框架的直接互操作性。

Video Codec SDK、DirectX Video、Vulkan Video 和 PyNvVideoCodec 为 GPU 加速的视频工作流程提供全面支持。NVIDIA 将继续支持这些 API,为开发者提供多种选择,并使用最适合其需求的选项。

Vulkan 视频
DirectX 视频
NVIDIA 视频编解码器 SDK
PyNvVideoCodec
平台
Windows 和 Linux
Windows
Windows 和 Linux
Windows 和 Linux
优势
  • 低级别控制

  • 原生 Vulkan 集成

  • 易于 Vulkan 开发者使用

  • 多供应商

  • 低级别控制

  • 原生 DirectX 和 Windows 集成

  • 易于 DirectX 开发者使用

  • 多供应商

  • 低级和高级控制

  • 自定义工作流中的原生集成

  • 适用于对 Vulkan 和 DirectX 了解较少的用户

  • 易于 C、C++开发者使用

  • NVIDIA 专有 API

  • 全面的功能集

  • Python 在 C++Video Codec SDK 包装器类上的绑定

  • 易于 Python 开发者使用

  • NVIDIA 专有 API

原生 API 接口
Vulkan 显卡
D3D11 (仅限解码) 和 D3D12
D3D9、D3D10、D3D11、D3D12 (仅限编码) CUDA (编码和解码)
CUDA (编码和解码)、PyTorch、TensorRT

合作伙伴和示例

img-alt-text
img-alt-text
img-alt-text
img-alt-text
img-alt-text
img-alt-text
img-alt-text
img-alt-text
img-alt-text
img-alt-text
img-alt-text
img-alt-text
img-alt-text
img-alt-text
img-alt-text
img-alt-text
img-alt-text
img-alt-text

近期视频编解码器 SDK 新闻

img-alt-text

新的视频创建和流式传输

由 NVIDIA 视频编解码器 SDK 加速的功能
Video Codec SDK 12.1 现已推出,改进了分割编码和新的低级别 NVENC API。了解新功能,以及如何使用这些功能加速视频创作和直播。

img-alt-text

提高视频质量

采用 AV1 和 NVIDIA Ada Lovelace 架构时的性能
AV1 是新的黄金标准视频格式,与较旧的 H.264 和 H.265 格式相比,具有更高的效率和质量。这是由开放媒体联盟 (Alliance for Open Media) 标准化的最新高效免版税视频编码器。

img-alt-text

AV1 编码和光流:

NVIDIA Ada 架构可提升视频性能并提高保真度
GTC 大会上宣布了视频编解码器 SDK 的更新,包括新一代 Ada GPU 上的 AV1 编码和 Optical Flow SDK 的更新,以及新的帧率提升转换库。


资源


开始使用 Video Codec SDK 进行开发。

开始使用

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy