Jetson视频配方Skill jetson-video-recipe

该技能用于将Jetson编码器用例转换为一个经过验证的表面中立配方,包含原生Video Codec SDK和PyNvVideoCodec的投影。它处理编解码器、预设、码率控制、比特率、延迟、格式和配置文件等参数,并支持规划、验证和实时分类。关键词:Jetson,视频编码,PyNvVideoCodec,NVENC,recipe,编码器配方,视频处理,边缘AI。

边缘视频视觉 0 次安装 1 次浏览 更新于 9/7/2026
名称 jetson-video-recipe
开源协议 “Apache-2.0”
描述 >- 用于将Jetson编码器用例转换为一个经过验证的、表面中立的配方, 其中包含原生和PyNvVideoCodec在编解码器、预设、码率控制、 比特率、延迟、格式和配置文件方面的投影。 metadata:
作者 “Vinit Bansal vinitkumarb@nvidia.com” tags: [jetson, video-codec-sdk, pynvvideocodec, nvenc, recipe] languages: [python] data-classification: public

Jetson 视频配方

目的

将工作负载意图转换为一个确定性的schema-2 nvcodec-recipe。保留用户的语义控制,显示默认假设,并将相同意图投影到原生Video Codec SDK和PyNvVideoCodec,但不声称已执行。

前提条件

  • 本技能拥有规范的配方引擎 — scripts/recipes/recipe_model.py 及其 scripts/recipes/data/encoder-intent-catalog.json。直接从安装的本技能调用引擎;它没有运行时设置或兄弟启动器依赖。
  • 配方规划和结构验证不涉及媒体,可以在目标环境之外运行。不要为仅计划请求请求、检索、检查或转换媒体。
  • 内容选择和来源归属属于后续的执行或测量工作流。仅在交接时使用该工作流的版本化内容工件;在仅计划工作中不要加载或强制其输入门。
  • check-live 的设置证据是可选的。没有环境时,正常验证配方,返回诚实的 unknown 实时分类,并提供非破坏性的修复建议给 jetson-video-setup;规划和重放验证保持完整且不变。如果未安装设置技能,请告知用户安装该技能。
  • 当提供了全新的 schema-1.2 设置环境时,必须进行验证,不能被忽略或由后备替换。其 capabilities 块是已确认的 PyNvVideoCodec 编码器权威,因此 pynvc 检查无需单独报告。调用者还可以提供由 jetson-video-capability 拥有的可选编码器能力报告;该报告必须经过认证、绑定到该确切环境,并且任何不匹配都关闭为 unknown 或输入错误。仅凭能力报告并不能确定所选表面的就绪性或所选GPU的身份。把工件视为数据;不要导入兄弟技能代码。compatible 结果仍不证明编码操作可行。

将此已安装技能解析到其规范绝对路径并设置 RECIPE_SKILL。确认直接隔离的入口点:

python3 -I "$RECIPE_SKILL/scripts/recipes/recipe_model.py" --help

如果缺失,报告 jetson-video-recipe 安装不完整。不要复制引擎、搜索另一个副本、修改 PYTHONPATH 或回退到未经验证的本地模型。

组合所请求的兄弟阶段

配方 planvalidate 不需要兄弟阶段、设置证据、目标或媒体。仅在请求实时就绪或修复时使用 jetson-video-setup;当平台支持推荐需要其文档结论时使用 jetson-video-capability;请求执行时使用 jetson-video-pipeline;请求测量时使用 jetson-video-benchmark。首先检查代理已安装的技能目录。如果兄弟技能存在,阅读其 SKILL.md 并调用其文档化的公共入口点;将工件作为数据传递,绝不导入兄弟代码。如果缺失,保留已验证的配方,并使用实际名称说明:我可以运行 <stage>,但它需要 <skill>,而该技能未安装。请安装 <skill> 并重试此阶段。仅计划工作或未请求的可选优化绝不要求兄弟阶段。

操作说明

  1. 收集意图。 对于仅请求客观质量指标(包括 PSNR 或 SSIM)的请求,只需说明本技能不提供这些指标,并且需要单独授权的质量工作流,然后停止。不要命名或推荐外部工具,不要提供配置或运行比较;不要请求媒体、探测、安装任何东西或启动操作。在收集任何其他遗漏字段之前,先解决互相排斥的码率控制意图。特别是,当同时提供 CQ 和平均比特率时,解释冲突,仅询问是保留 CQ 还是平均比特率,并停止。不要将比特率重新解释为上限,也不要询问用例、分辨率、帧率、格式、GPU、配置文件、预设或另一个字段,直到用户解决该选择。否则解决用例(conferencinglive_streamingvodarchivallossless)、编解码器、宽度、高度、原始输入格式、整数帧率、GPU、预设/调优、码率控制或编码器质量优先级,以及任何显式的延迟、配置文件或缓冲约束。仅当后续执行或测量需要时才解决帧数。在将未经限定的“低延迟”请求分配到一个用例之前先询问。将配置文件视为与预设分离的比特流/下游兼容性控制:保留显式配置文件,但省略时让它由 SDK 选择,绝不自己发明命名的配置文件。
  2. 编写一个意图 JSON。 将调用者值保持与默认值分离。仅将调用者指定的控制值放入意图中,并将每个省略的控制留给经过认证的用例目录。不要将定性措辞转换为猜测的覆盖项:例如,“低延迟实时流”选择 live_streaming;它本身不请求 bf=0 或禁用 multipass。绝不要构建漂移的原生和 Python 意图。
  3. 使用配方引擎进行规划:
python3 -I "$RECIPE_SKILL/scripts/recipes/recipe_model.py" \
  plan --intent "$INTENT_JSON" --output "$RECIPE_JSON"
  1. 使用前进行重放验证:
python3 -I "$RECIPE_SKILL/scripts/recipes/recipe_model.py" \
  validate --recipe "$RECIPE_JSON"

不要手动编辑生成的配方。从更新的意图中重新生成。 5. 可选地将实时投影分类。 为所选表面运行 check-live。环境选项是可选的:

python3 -I "$RECIPE_SKILL/scripts/recipes/recipe_model.py" \
  check-live --recipe "$RECIPE_JSON" \
  --surface native --output "$LIVE_CHECK_JSON"

对于精确投影,省略时特意返回 unknown 并带有设置修复建议;它绝不臆造就绪性。要解析实况结果,使用 --environment "$ENVIRONMENT_JSON" 重复运行。在请求时对 pynvc 重复独立运行。Py 检查读取环境的 schema-1.2 capabilities 块。--capability-report "$CAPABILITY_REPORT_JSON" 是仅在该环境也提供时的可选 Py 优化;它必须绑定到相同的工件。它只替换选定的 Py 编码器 API 证据,而不替换环境的就绪性事实,因此原生时要省略。缺失可选证据永不失败,但提供的证据必须验证且绝不静默回退。compatible 结果意味着投影和实况 Py 证据一致;这不是操作证明。检查发出的分类,而不只是进程退出代码:精确的原生投影,如果经过认证的 AppEncCuda 运行被推迟,则返回 unknown,退出代码为 0,绝不能报告为兼容或就绪。Py CPU 缓冲区兼容性检查需要默认的 smoke 依赖子集;GPU 缓冲区模式额外需要仅由经过验证的 full-samples 环境提供的精确 Torch 事实。 6. 返回配方和假设。 报告 schema/种类、确切的便携工件标识、规范编码器意图、原生和 PyNv 投影、投影损失、默认值、原理,以及执行前仍需要的事实。 7. 在媒体工作前停止。 本技能绝不调用 AppEncCudaAppDec、PyNvVideoCodec 示例应用程序、基准帮助程序或管道控制器。将执行路由到 jetson-video-pipeline,将性能测量路由到 jetson-video-benchmark

使用 recipes-workflow.md 作为请求和输出约定,使用 recipes-knobs-and-constraints.md 获取精确的接受值和表面限制。

推荐规则

应用 Tuning and preset 中的调优、预设和匹配测量规则,以及 Profile selection 中的配置文件、格式和投影规则。

  • 对于命名平台,将编解码器视为配方候选是支持声明。首先使用能力工作流的经过认证的文档结论,排除文档不支持的编解码器,并将未知结论保持为未知,而不是提供为支持。API 字段或条件“受能力门控”的候选不覆盖不支持的文档结论。
  • 如果推荐发布了基于文档的支持结论,请消费能力结果并重现每个经过认证的候选行及其计数;绝不重新解释部分子集。

可用脚本

脚本 用途 参数
scripts/recipes/recipe_model.py 规划、重放验证或实时检查一个规范配方及其原生/PyNv 投影。 直接使用 python3 -I 调用;使用 planvalidatecheck-live 子命令并查看 --help

故障排除

  • 拒绝格式错误、遗留、混合、重复键、非有限或与确定性不匹配的配方文档。
  • 将确切的不可表示控制保留为每表面投影损失。对于显式的 both,不要隐藏受阻的对端或静默丢弃控制。
  • 不要为 auto 请求选择执行表面。保留两个投影并将运行时选择交给 jetson-video-benchmarkjetson-video-pipeline,在那里可以评估实时资格。
  • 将缺失的实时字段视为 unknown,将显式的负字段视为 unsupported。缺失的所选表面先决条件包括修复到 jetson-video-setup;如果该技能缺失,请告诉用户安装它。两种状态都不改变便携配方本身。

限制

  • 规划和验证不建立安装就绪性、文档支持、实时可用性、输出质量或性能。
  • 本技能仅生成基本编码器配置;容器、转码、分割、解码验证和工件交接属于 jetson-video-pipeline
  • 客观质量测量(包括 PSNR 和 SSIM)超出了本技能的范围。