关于 jetson-video-capability
jetson-video-capability 用于评估 NVIDIA Jetson 的视频编码和解码能力。它区分 API 报告、经过认证的样例结果与产品支持文档,并将不确定结果标记为未知。
主要功能
- 01查询 PyNvVideoCodec 能力
- 02获取原生样例报告
- 03将精确 Jetson 产品与支持矩阵核对
- 04区分能力报告与已验证操作
- 05保留证据并标记未知结果
适用场景
- 01检查 Jetson 设备的编解码能力
- 02评估特定产品的文档支持情况
- 03验证指定的编码或解码操作
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ nvidia/ skills --skill jetson-video-capability安装后在 Claude Code 中输入/jetson-video-capability确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
BENCHMARK.mdskill-card.mdskill.oms.sigevals/evals.jsonreferences/capability-queries.mdsurface-selection-contract.md详细介绍
Jetson 视频能力
将以下三类依据分开:
- API 查询:原始字段,绝不能作为操作能力或产品支持的证明。
- 经过身份验证的 NVIDIA 示例:报告或确切的操作证据。
- 适用的 NVIDIA 文档:产品支持结论。
范围门槛
- 如果请求仅涉及 PSNR、SSIM 或其他客观质量指标,请说明此技能不提供这些指标,需要另行授权质量工作流;除此之外不做任何操作。
- 如果涉及 Netflix、Widevine、PlayReady 或明显受内容保护的流媒体,只说明此技能涵盖对用户提供的非 DRM 码流进行硬件编码/解码,不涵盖内容 DRM 播放。不要声称相关服务是否可用,不要描述 Jetson 认证、CDM 或安全播放要求,也不要推荐浏览器、DRM 模块、变通方法或绕过方式;然后停止。如果未加限定的“DRM”可能指 Linux DRM/KMS,且上下文无法判断其含义,请询问用户所指为何。
- 单独提到“视频 SDK”含义不明确:在探测之前,询问用户指的是原生 Video Codec SDK、PyNvVideoCodec,还是两者。其他未加限定的能力请求,使用 surface-selection-contract.md 中优先选择原生接口的回退方案。
只读发现
能力工作依赖 jetson-video-setup 完成一次最新的只读安装检查。通过公开调度调用该技能,并使用其报告的确切原生软件包/Samples 根目录,或确切的 PyNvVideoCodec 解释器、版本和已加载模块路径。不要定位或导入 setup 的文件。接口缺失或不匹配时,结果应为 unknown/not_ready,绝不能判定为不支持编解码器;应将修复工作交由 setup 处理,且此处不得进行任何修改。
引擎能力查询应在此处进行,而非在 setup 中进行。对于 PyNvVideoCodec,使用确切选定的解释器,按照 capability-queries.md 中的说明调用公开的 GetEncoderCaps 和 GetDecoderCaps API。广泛的编码器目录涵盖 H.264、HEVC 和 AV1;广泛的解码器目录涵盖 10 个系列,覆盖 4 种色度格式和 3 种位深(共 120 个确切的元组)。范围有限的请求仅查询适用目录集合中明确指定的成员。保留所有范围内的记录、错误和 GPU 序号。如果公开辅助函数仅选择 GPU 0,则针对非 0 号 GPU 的辅助函数结果仍应视为未知。
对于原生报告,请重复使用经过身份验证的、由软件包提供的二进制文件,或仅在新建的用户所有目录树中构建所需的报告目标;随后按照能力参考中的构建、身份和语法规则运行 AppEncCuda -ec 和/或 AppDec -dc。仅查询的请求不授权安装软件包,也不授权执行编码/解码操作。如果无法确认软件包、源代码、工具、解释器或运行时库的身份,请将结果报告为 unknown,并指出缺少的 setup 前置条件。
决策流程
- 在进行任何探测前,先分类范围并选定接口。
- 仅查询所选接口。保留原始记录、错误、精确的 GPU、发布版本、解释器/二进制文件身份、argv 和证据分类。
- 使用 capability-queries.md 中的设备树路径和 NUL 处理方式,确定最精确的实时产品身份,然后对照 NVIDIA 当前的 Video Encode and Decode Support Matrix 以及与发布版本匹配的 SDK 13.0 NVENC 或 NVDEC 应用说明进行交叉核验。切勿根据记忆、引擎数量、功能字段或操作行为推断 SKU。使用该参考资料的手动采集记录,保留来源 URL、检索日期、表格标题、精确的行/列标签和单元格值。 通用系列身份仍不属于精确身份;只有在所有经过身份验证的候选项一致时,才能采用候选行共识。
- 即使 API 或诊断操作结果为正,文档中的
No仍须作为最终的不受支持产品判定;这会结束常规可用性检查。文档中的Yes表示有文档记录的支持;要确认实时可用性,还需要匹配的已验证操作。文档缺失、无法检索或存在冲突时,结果仍为未知。 当文档结果未知时,不要将正向功能字段表述为可用选项:在这些字段旁将每个受影响的编解码器标为unknown,并在判定中说明检索失败。 - 对 PyNvVideoCodec 的编码可用性操作,请求 setup 的
full-samples配置文件,并在配方和流水线阶段中使用其精确的解释器。不要选择较小的 decode-performance/smoke 配置文件。 - 仅当用户请求检查实时可用性且文档判定为正面或未知,或用户明确要求尽管判定为负面仍执行诊断时,才运行精确操作。若文档为
No,诊断只报告该精确元组的operation_verified或operation_failed,绝不改变产品不受支持的判定。元组指经过测试的精确接口、GPU、编解码器、配置文件、色度、位深、尺寸、输入格式和控制集。使用jetson-video-recipe确定一个配方,然后使用jetson-video-pipeline进行编码,再对精确输出身份进行独立解码。元组测试失败不得推广为产品整体结论。
证据规则
GetEncoderCaps成功表示capability_reported,supported=null,operation_status=not_tested。GetDecoderCaps的bIsSupported=1/0记录 API 原始的 true/false 值,以及返回的限制是否适用;这两个值都不是文档结论。- 缺失的枚举、调用、字段、前置条件或非零 GPU 权限均属未知,不能判定为不支持。
- 原生
-ec/-dc文本属于official_sample_report;保留原始值,绝不可将其改写为 API 或产品声明。 - 报告 Main10 支持情况时,注明 NVENC 可以在内部转换经过验证的 8-bit 输入,而 P010 是不进行输入位深转换的精确路径;实时声明仍须经过已验证的 10-bit 操作。
- 只有在流水线中由软件包自带的解码器处理确切的产物,并报告预期的帧数后,AV1 输出才构成操作证据。
- 对于 VP9 编码问题,只报告 VP9 仍属于解码器系列,且没有已发布的 NVENC 路径。不要添加其他编码器的一般列表,也不要提供诊断性编码操作。
- 预设、调优、软件包是否存在、吞吐量以及并发流成功运行,均不能证明编解码器支持情况或 NVENC/NVDEC 引擎数量。
- 编解码器/API 能力、NVENC/NVDEC 可用性以及有界操作成功,均不能证明 DMA-BUF、NvSciBuf、CUDA 内存共享、零拷贝或跨阶段同步兼容性。
对于 Python API 查询,请根据此 Markdown 和已安装的公开 SDK 编写一个简短的任务专用程序,使用精确选定的解释器运行,并将原始输出与结果一并保留。安装属于设置阶段,操作验证属于流水线阶段。本技能负责引擎查询、分类、文档核对,以及上述精简的直接报告。