Generated banner for Jetson Video Recipe
Generated logo for Jetson Video Recipe

Jetson Video Recipe

NVIDIAOfficialCreated by Vinit BansalDistributed by NVIDIA

  • Skill
  • Content generator
  • Software development
  • Apache-2.0
  • Medium risk

From the author

Use when turning a Jetson encoder use case into one surface-neutral recipe with native Video Codec SDK and PyNvVideoCodec projections.
— the description by Vinit Bansal

From the skill’s files

Taken from the skill’s own files (its description, section headings and stated usage). Not an AutoGineer summary, and not written by the author as one.

Use when turning a Jetson encoder use case into one surface-neutral recipe with native Video Codec SDK and PyNvVideoCodec projections. Create one deterministic nvcodec-recipe schema 2.0 document. Recipe work is off-target and media-free: it does not probe, install, encode, decode, or claim support, quality, or performance.

What it does

  • Boundaries
  • Workflow
  • Live and downstream work
  • Required outcomes
  • Limitations

When to use it

  • Use when turning a Jetson encoder use case into one surface-neutral recipe with native Video Codec SDK and PyNvVideoCodec projections.

Advantages

The skill’s files do not state this.

Usage examples

The skill’s files do not state this.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/nvidia/jetson-video-recipe/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip jetson-video-recipe.zip -d .agents/skills

Documentation by Vinit Bansal

Jetson Video Recipe

Create one deterministic nvcodec-recipe schema 2.0 document. Recipe work is off-target and media-free: it does not probe, install, encode, decode, or claim support, quality, or performance.

Boundaries

  • For a request solely about PSNR, SSIM, or another objective quality metric, say that a separately authorized quality workflow is required and stop.

  • Resolve a supplied CQ plus average or maximum bitrate conflict first. Return input_required, ask only which one to keep, and stop; do not reinterpret a bitrate as a cap or emit a recipe.

  • An unqualified “low latency” does not select a use case. Ask whether it means conferencing, live streaming, or another contract, return input_required, and stop without emitting a recipe.

  • Preserve every explicit control. If one surface cannot express it, publish a projection loss; never silently discard or weaken it.

Workflow

  1. Collect use case, codec, positive integer width/height/fps, input format, GPU, and any explicit profile, preset, tuning, rate-control, bitrate, GOP, B-frame, lookahead, AQ, multipass, or buffering controls. frame_count is required before raw encode or measurement, but may remain unknown until an authenticated decoder/transcoder reports it for compressed input. If use_case, width, or height is missing, return input_required naming exactly the missing items and stop; apply the documented defaults for every other omitted item. Leave omitted profile SDK-selected.

  2. Apply the fixed defaults and constraints in recipes-knobs-and-constraints.md, then build the schema-2 document exactly as described in recipes-workflow.md. Keep caller values and defaults separately attributable.

  3. Validate the document structurally: exact schema/kind; finite JSON; positive bounded integers; legal enum strings; mutually exclusive rate-control fields; format/profile constraints; projections derived from the same encoder_intent; and every explicit caller control represented in each projection or named in that projection's losses. Regenerate rather than editing an accepted recipe. If the regenerated document still fails structural validation, return failed with the exact defect and do not emit a recipe.

  4. Write canonical, sorted JSON to a fresh path without overwriting anything. Record its canonical absolute path, byte count, and SHA-256; every consumer rehashes that exact file. If no safe fresh path exists or writing/rehashing fails, return failed with the exact reason and do not claim a recipe.

  5. Return the intent, assumptions/defaults, both projections, all losses, and the recipe file's canonical absolute path, byte count, and SHA-256. For both, retain both outcomes. auto means retain both projections without selecting either; the pipeline or benchmark selects from fresh live eligibility evidence.

For a plan-only recipe, these Markdown rules are the complete authority. Do not probe the target, inspect installed SDK/sample source, scan the filesystem for example JSON, or invoke another skill merely to confirm the projection. Plan-only still requires steps 2-5, including writing and rehashing the fresh canonical recipe JSON and reporting its absolute path, byte count, and SHA-256; it forbids target and media operations, not local recipe-artifact creation.

Live and downstream work

For a requested live classification, obtain a fresh read-only readiness result from jetson-video-setup for the selected product and GPU, plus the applicable raw/documentation result from jetson-video-capability. Missing facts remain unknown; explicit negatives or an unrepresentable projection are unsupported. API-reported capability is not operation proof.

Pass the original recipe identity as data to jetson-video-pipeline for execution or jetson-video-benchmark for measurement. Those skills must rehash it and hold non-compared controls constant. Do not import or recreate a sibling skill's implementation.

Required outcomes

  • H.264 1920x1080@60, 6 Mbps CBR live streaming defaults to P4, low_latency, GOP 60, one B-frame, zero lookahead, full-resolution multipass, max bitrate 6,000,000, and VBV 3,000,000.

  • An explicit H.264 High profile is exact in the native projection and unrepresentable in the public PyNvVideoCodec 2.1 sample projection.

  • A CQ plus average bitrate request produces no recipe until resolved.

Limitations

This skill produces elementary encoder configuration only. Content selection, container/transcode work, independent decode, benchmarking, and evidence capture belong to their owning skills.

Files

references/recipes-workflow.md

Encoder recipe contract

Intent and defaults

Require use_case, positive integer width, and positive integer height. Accepted use cases are conferencing, live_streaming, vod, archival, and lossless. Defaults independent of use case are codec=h264, format=NV12, fps=30, gpu=0, and output_requirement=elementary_stream.

Apply this fixed default table only to omitted controls:

Use casePresetTuningRCGOPBFMultipassLookaheadAQBitrate / max / VBV
conferencingp3ultra_low_latencycbr300disabled0—3M / 3M / 300k
live_streamingp4low_latencycbr601fullres0—6M / 6M / 3M
vodp6high_qualityvbr1203fullres2088M / 12M / 12M
archivalp7high_qualityvbr2503fullres28820M / 30M / 30M
losslessp3losslessconstqp300disabled0—constqp=0,0,0

Apply the matching assumptions and retain them verbatim in the recipe's assumptions array. They are preconditions for using a default, not measured or documented capability claims.

Use caseRequired assumptions
conferencinglatency is prioritized over compression efficiency; the application can tolerate strict CBR behavior
live_streamingbounded bitrate and moderate latency matter; one B frame is acceptable only after latency validation
vodoffline throughput is secondary to compression efficiency; input surfaces remain valid while lookahead consumes them
archivalquality and size dominate real-time throughput; the archive workflow accepts long GOPs
losslessthe selected codec/profile/surface supports the requested lossless path; large output size is acceptable

If the caller supplies an average bitrate but omits maximum bitrate, set the maximum to that bitrate. For conferencing use a 0.1-second VBV; for live streaming use 0.5 seconds. Record each supplied/defaulted/derived field and its source. Defaults are starting points, not measured recommendations.

Schema 2.0

Write one strict JSON object with at least this shape:

{
  "schema_version": "2.0",
  "kind": "nvcodec-recipe",
  "status": "candidate",
  "intent": {"use_case": "live_streaming"},
  "encoder_intent": {
    "codec": "h264", "width": 1920, "height": 1080,
    "format": "NV12", "fps": 60, "gpu": 0,
    "output_requirement": "elementary_stream", "preset": "p4"
  },
  "defaults": {"provided_intent_keys": [], "entries": []},
  "assumptions": [],
  "projection_losses": {"native": [], "pynvc": []},
  "projections": {
    "native": {"status": "exact", "cli_options": []},
    "pynvc": {"status": "exact", "arguments": {}, "config": {}}
  }
}

Optional rationale is permitted. All numbers must be finite JSON numbers; all fields needed by downstream execution remain in encoder_intent. Include frame_count once established; never derive it from a media filename.

Projection rules

Native cli_options are an argv array, never a shell string. Begin with:

-s WIDTHxHEIGHT -if FORMAT_LOWER -gpu GPU -codec CODEC
-preset PRESET -tuninginfo TOKEN -rc RC

Append present controls using -profile, -fps, -gop, -bf, -multipass, -bitrate, -maxbitrate, -vbvbufsize, -lookahead, -aq, -cq, or -constqp; append the operand-free -temporalaq only when enabled. Native tuning tokens are hq, lowlatency, ultralowlatency, lossless, and uhq. Native format spellings are NV12=nv12, YUV420=iyuv, NV16=nv16, YUV444=yuv444, P010=p010, P210=p210, YUV444_16BIT=yuv444p16, ARGB=bgra, and ABGR=abgr. Never rely on parser fallback.

PyNv arguments carries lowercase codec, original format, size, gpu, and nullable frame_count. Its config mirrors applicable intent controls, uses uppercase P1–P7, gpu_id, and typed tuning names. Public 2.1 cannot express profile or intra refresh; record each as a loss and mark the Py projection unrepresentable. Both projections always describe one intent.

Validation checklist

  • codec: h264|hevc|av1; preset: p1–p7; rc: cbr|vbr|constqp; multipass: disabled|qres|fullres.

  • Width, height, fps, GPU, GOP, BF, lookahead, and frame count are integers; fps/gop/bf <= 2147483647; bitrate/VBV values <= 4294967295.

  • CQ is incompatible with average bitrate; const-QP is incompatible with CQ, bitrate, maximum bitrate, and VBV. gop >= bf + 1; lookahead is 0..(31-bf); ultra-low-latency requires BF and lookahead zero.

  • Apply every format/profile rule in the companion reference. Do not claim a live capability or documentation verdict during structural validation.

  • projections.pynvc.config must exactly equal the JSON passed with the official sample's -json; benchmark validation depends on this equality.

File identity and handoff

Create a new file with mode 0600, canonical sorted JSON, and a final newline. Refuse an existing path or any symlink component. Capture canonical path, size_bytes, and SHA-256 after writing. Pipeline and benchmark consumers must rehash that same file and reject any difference.

For live compatibility, the fresh setup readiness result must match the recipe GPU and selected surface. Py capability records remain API facts; native AppEncCuda -ec records remain sample reports. Neither substitutes for the independent encode/decode proof owned by the pipeline.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

What our scanner noticed· Medium risk

  • Large base64-encoded blobs

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Vinit Bansal
Publisher
NVIDIA (Official)
Distributed by
NVIDIA
Source
NVIDIA/skills · skills/jetson-video-recipe · commit fce3cca
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE-APACHE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Vinit Bansal or NVIDIA.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download jetson-video-recipe.zip