视频是贯穿 NVIDIA Jetson 各类应用的核心数据通路,涵盖机器人、智能视频分析、工业自动化、医疗、媒体处理以及远程操作等场景。一个系统可能同时采集多路摄像头、解码网络流、运行 AI 推理或传统视觉处理、绘制结果,并对视频进行编码以用于存储或传输。
单个调用本身并不复杂;真正的工程工作在于为 Jetson 设备选择合适的接口、编解码器、像素格式、内存路径、码率控制和缓冲策略,并证明整条通路能够满足延迟、吞吐量和质量目标。
NVIDIA JetPack 7.1 在 Jetson Thor 上引入了 NVIDIA Video Codec SDK 支持,使 C 和 C++ 开发者能够直接、细粒度地访问 NVIDIA 视频编码器(NVENC)和 NVIDIA 视频解码器(NVDEC)。
JetPack 7.2.1 首次在 Jetson 上加入对 PyNvVideoCodec 2.2 的支持,这是 NVIDIA Python 库,用于在 NVIDIA GPU 上进行硬件加速的视频编码和解码。PyNvVideoCodec 以驻留 GPU 的设备内存形式生成和消费视频帧,并通过 DLPack 协议和 CUDA 设备缓冲区对外暴露。它包含对 AI 流水线友好的特性,例如多模式帧采样,以及 ThreadedDecoder——通过在后台线程中预解码帧来提升流水线效率,将解码延迟与推理延迟解耦。
JetPack 7.2.1 还在这些 SDK 之上带来了基础性的智能体视频技能。SDK 提供可编程的视频原语;这些技能则将开发者的目标与实时设备发现、受支持的配置、可用配方、执行、测量以及可复现的证据连接起来。二者共同加速了 Jetson 上的开放模型和智能体开发,将前沿级 AI 性能交到每一位开发者手中,无论他们身在何处。
从提示词到经验证的流水线
诸如“这个 Jetson 在低延迟用例下能运行多少路 H.264 1080p30 流?”这样的提示词,无法仅靠代码生成或数据手册上的上限来回答。它取决于已安装的软件、目标设备实际可用的编解码器能力、内存路径,以及一次能够证明延迟和吞吐量的受控运行。
Jetson 视频技能将这一意图转化为可重复的编解码器工作流:检查目标设备,选择受支持的 Video Codec SDK 或 PyNvVideoCodec 路径,生成经过测试的配置,执行该配置,并返回带有警告和证据的实测结果。
Jetson 视频技能在 Video Codec SDK 和 PyNvVideoCodec 之上提供了一层智能体工作流,二者均使用 NVENC 和 NVDEC 硬件引擎:
Jetson 视频工作流的基础技能
JetPack 7.2.1 通过统一的 jetson-videosdk 技能引入了基础视频工作流。开发者可以独立调用每个工作流,也可以将它们组合起来,在更广泛的流水线中配置和验证编解码器各阶段。未来版本将扩展这一基础,在 Jetson 开发者工作流中增加更多技能。
发现、设置和报告能力:识别 Jetson 平台和已安装的软件,指导受支持的设置,并在实时目标上查询编码和解码编解码器、格式、内存路径和会话能力。生成编码器配方:将低延迟、恒定质量、受限比特率、分辨率、帧率和编解码器选择等目标转化为明确的设置以及可运行的 Video Codec SDK 或 PyNvVideoCodec 路径。基准测试性能和质量:对吞吐量、延迟、利用率、比特率和输出质量运行可重复的测量。验证编解码器工作流:连接设置、配方选择、编码或解码、测量和产物交接;然后返回复现结果所需的配置、结果、警告和证据。
这些技能在 SDK 之上增加了什么
SDK 提供加速的视频原语;这些技能增加了设备感知的配置和验证。它们区分了宣称的能力与在目标上成功执行的操作,并保留配方、输入、输出和测量结果以实现可复现性。
使用 PyNvVideoCodec 和 Jetson 视频技能构建 AI 视频流水线
考虑这个提示:“解码此视频,应用我的 AI 或计算机视觉处理,并验证编解码器阶段是否达到我的性能目标。”编码助手使用 Jetson 视频技能来配置和验证 PyNvVideoCodec,而 PyNvVideoCodec 附带的示例应用程序提供了参考应用程序脚手架。
步骤 1:检查和配置。编码助手调用该技能来验证 Jetson 平台、软件和编解码器能力,然后选择解码器、输出格式、内存路径和缓冲。
步骤 2:解码为框架数据。PyNvVideoCodec 示例可以在后台线程上准备帧,并将每一帧交给框架张量,而无需应用程序特定的编解码器缓冲区代码。
步骤 3:完成应用程序流程。在编解码器阶段配置完成后,编码助手可以用提示所需的阶段扩展示例应用程序,例如预处理、检测或分类、隐私过滤(如模糊处理)、可视化和输出处理。确切的 AI 或计算机视觉模型和应用程序逻辑仍由开发者选择。
步骤 4:测量和验证。该技能记录编解码器配置,并验证运行状态、吞吐量、延迟、利用率、警告和证据。

图 1. Jetson 视频技能配置和验证 PyNvVideoCodec 阶段;编码助手添加开发者提示所需的 AI、计算机视觉和应用程序阶段
范围说明:JetPack 7.2.1 视频技能涵盖 Video Codec SDK 和 PyNvVideoCodec。在此版本中,它们不添加 GStreamer、V4L2、AI 模型或应用程序级流水线构建技能。它们在编解码器阶段补充编码助手。未来版本中的其他 Jetson 技能可以与它们组合,以支持更广泛的端到端应用程序。
为每个流水线阶段选择 Jetson 视频接口
Jetson 通过互补的软件层提供视频功能。GStreamer 提供高层管线组合,V4L2 提供 Linux 视频设备和缓冲区控制,Video Codec SDK 提供对 NVENC 和 NVDEC 的底层 C/C++ 访问,而 PyNvVideoCodec 基于核心 Video Codec SDK API 构建,提供更简单的 Python 接口。当工作流跨越采集、编解码、AI 和交付阶段时,这些层可以组合使用。
| 接口 | 使用场景 | 在 Jetson 管线中的价值 |
|---|---|---|
| GStreamer | 你需要可组合的多媒体图。 | 构建用于视频采集、播放、流媒体、转码和格式转换的硬件加速管线。 |
| V4L2 | 你需要直接的 Linux 摄像头、设备、格式或缓冲区控制。 | 访问 Jetson 视频设备以实现加速编码和解码,并显式控制格式、缓冲区和设备行为。 |
| Video Codec SDK | 你需要 C/C++ API 以及对 NVENC/NVDEC 能力和编解码器功能的细粒度控制。 | 使用硬件加速视频编码和解码,并对质量、延迟和吞吐量进行细粒度控制。 |
| PyNvVideoCodec | 你需要更简单的 Python API 来实现硬件加速视频并与 AI 框架集成。 | 构建 Python 视频编码、解码和转码工作流,并轻松集成到 AI 框架中。 |
表 1. 将接口与需要最多控制的管线层匹配;接口可以在单个应用程序中组合使用
JetPack 7.2.1 共同为开发者提供了一条从意图到证据的更清晰路径:选择合适的 Linux、C/C++ 或 Python 接口;将加速数据保持在 GPU 附近;并使用基础视频技能来配置和验证 Video Codec SDK 或 PyNvVideoCodec 阶段。这一基础如今补充了编码助手,并可在未来版本中与额外的 Jetson 技能结合,以支持更广泛的端到端应用。
在搭载 JetPack 7.2.1 的 Jetson T5000 上模拟 Jetson T3000 性能
Jetson T3000 在紧凑、高能效的平台上为类人机器人和机器人工作负载提供 865 FP4 TFLOPS。它为多模态 AI 提供与 T5000 相当的推理性能,同时减少占用空间、功耗和成本。借助 JetPack 7.2.1,你现在可以通过在 Jetson Thor AGX 开发者套件的 Jetson T5000 模块上模拟最近发布的 T3000 性能来启动开发。有关模拟实现的更多详细信息,请访问 Jetson Linux 开发者指南。
开始使用
Jetson 设备技能仓库Jetson BSP 技能仓库视频编解码器 SDK 开发者门户PyNvVideoCodec 入门指南PyNvVideoCodec 编程指南面向 T3000 仿真的 Jetson Linux 开发者指南黄仁勋谈开放模型与美国 AI 领导力黄仁勋谈开放安全 AI 联盟Jetson T3000 与 T2000 发布博客Jetson Linux 多媒体 API 参考
