Jetson Video Capability
NVIDIAOfficialCreated by Vinit BansalDistributed by NVIDIA
- Skill
- Tool integration
- Software development
- Apache-2.0
- Medium risk
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a structured methodology for determining video codec support on NVIDIA Jetson platforms. It integrates data from live API queries, authenticated NVIDIA sample reports, and official documentation to provide a verified capability verdict. The skill enforces strict separation between raw API data, operational evidence, and product-support documentation, ensuring that users receive accurate information regarding codec, profile, chroma, and bit-depth support while avoiding unauthorized assumptions about DRM or performance metrics.
What it does
- Queries PyNvVideoCodec APIs for encoder and decoder capabilities.
- Extracts reports from authenticated native NVIDIA video codec samples.
- Reconciles live findings against official NVIDIA support matrices.
- Classifies capability evidence into API, sample, and documentation categories.
- Provides a structured verdict on codec support for specific hardware configurations.
- Handles scope-gating for DRM and objective quality metrics.
When to use it
- When you need to verify if a specific codec, profile, or bit-depth is supported on a Jetson device.
- When reconciling conflicting information between API outputs and official documentation.
- When preparing a technical report on hardware video encoding/decoding capabilities.
- When you need to determine if a specific video operation is documented as supported.
Advantages
- Ensures high-fidelity results by cross-referencing multiple authoritative sources.
- Prevents incorrect assumptions by strictly separating API results from product support.
- Provides a clear, standardized framework for reporting hardware capabilities.
- Maintains integrity by relying on authenticated samples and official documentation.
Usage examples
- “Check if HEVC 10-bit decoding is supported on my Jetson.”
- The agent will query the relevant API, check the official support matrix, and report whether the capability is documented and operationally verified.
- “What are the encoder capabilities for AV1 on this Jetson?”
- The agent will provide a report based on the native Video Codec SDK or PyNvVideoCodec, reconciled against official NVIDIA documentation.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/nvidia/jetson-video-capability/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip jetson-video-capability.zip -d .agents/skills
Documentation by Vinit Bansal
Jetson Video Capability
Keep three authorities separate:
API query: raw fields, never operation or product-support proof.
Authenticated NVIDIA sample: report or exact operation evidence.
Applicable NVIDIA documentation: product-support verdict.
Scope gates
For a request solely for PSNR, SSIM, or other objective quality metrics, say this skill does not provide them and a separately authorized quality workflow is required; do nothing else.
For Netflix, Widevine, PlayReady, or clearly content-protected streaming, state only that this skill covers hardware encode/decode of user-supplied non-DRM bitstreams, not content-DRM playback. Do not claim whether the service works, describe Jetson certification, CDM, or secure-playback requirements, or recommend a browser, DRM module, workaround, or bypass; then stop. An unqualified “DRM” may mean Linux DRM/KMS; ask which meaning if context does not resolve it.
A bare “video SDK” is ambiguous: ask native Video Codec SDK, PyNvVideoCodec, or both before probing. An otherwise unqualified capability request uses the native-preferred fallback in surface-selection-contract.md.
Read-only discovery
Capability work depends on jetson-video-setup for a fresh, read-only
installation check. Invoke that skill through public dispatch and consume its
reported exact native package/Samples root or exact PyNvVideoCodec interpreter,
version, and loaded module path. Do not locate or import setup's files. A
missing or mismatched surface is unknown/not_ready, never codec unsupported;
route repair to setup without mutating anything here.
Engine capability queries belong here, not in setup. For PyNvVideoCodec, use
the exact selected interpreter to call the public GetEncoderCaps and
GetDecoderCaps APIs as described in
capability-queries.md. A broad encoder
catalog covers H.264, HEVC, and AV1; a broad decoder catalog covers all ten
families across four chroma formats and three bit depths (120 exact tuples).
A bounded request queries only named members of the applicable catalog set.
Preserve every scoped record, error, and GPU ordinal. Nonzero-GPU helper results
remain unknown when the public helper selects only GPU 0.
For native reports, reuse authenticated package-owned binaries or build only
the required report target in a fresh user-owned tree, then run
AppEncCuda -ec and/or AppDec -dc using the build, identity, and grammar
rules in the capability reference. A query-only request does not authorize
package installation or an encode/decode operation. If the package, source,
tool, interpreter, or runtime-library identity cannot be established, report
the result unknown and name the missing setup prerequisite.
Decision flow
Classify scope and selected surface before any probe.
Query only the selected surface. Preserve raw records, errors, exact GPU, release, interpreter/binary identities, argv, and evidence classification.
Resolve the most exact live product identity using the device-tree paths and NUL handling in capability-queries.md, then cross-check it against NVIDIA's current Video Encode and Decode Support Matrix and the release-matched SDK 13.0 NVENC or NVDEC application note. Never infer SKU from memory, engine count, capability fields, or operation behavior. Preserve source URL, retrieval date, table title, exact row/column labels, and cell value, using that reference's manual capture record. Generic family identity stays non-exact; use candidate-row consensus only when every authenticated candidate agrees.
Report documentation
Noas the final unsupported product verdict even if an API or diagnostic operation is positive; this ends the normal availability check. DocumentationYesestablishes documented support; live availability additionally needs the matching authenticated operation. Missing, unretrievable, or conflicting documentation remains unknown. When documentation is unknown, do not present positive capability fields as available options: label each affected codecunknownbeside them and state the retrieval failure with the verdict.For a PyNvVideoCodec encode-availability operation, request setup's
full-samplesprofile and carry its exact interpreter into the recipe and pipeline stages. Do not select the smaller decode-performance/smoke profile.Run an exact operation only when the user requests live availability and documentation is positive or unknown, or explicitly requests a diagnostic despite a negative verdict. A diagnostic under documentation
Noreports onlyoperation_verifiedoroperation_failedfor that exact tuple and never changes the unsupported product verdict. A tuple is the exact surface, GPU, codec, profile, chroma, bit depth, dimensions, input format, and control set tested. Resolve one recipe withjetson-video-recipe, then usejetson-video-pipelinefor encode followed by independent decode of the exact output identity. A failed tuple never generalizes to the product.
Evidence rules
GetEncoderCapssuccess iscapability_reported,supported=null,operation_status=not_tested.GetDecoderCapsbIsSupported=1/0records raw API true/false and whether returned limits apply; neither value is the documentation verdict.Missing enums, calls, fields, prerequisites, or nonzero-GPU authority are unknown, not unsupported.
Native
-ec/-dctext isofficial_sample_report; preserve raw values and never rewrite them as API or product claims.When reporting Main10 support, note that NVENC can convert verified 8-bit input internally and that P010 is the exact no-input-bit-depth-conversion path; a live claim still requires an authenticated 10-bit operation.
AV1 output is operation evidence only after the pipeline's package-owned decoder consumes the exact artifact and reports the expected frame count.
For a VP9 encode question, report only that VP9 remains a decoder family and no released NVENC route exists. Do not add a generic list of other encoders or offer a diagnostic encode operation.
Presets, tuning, package presence, throughput, and successful concurrent streams do not establish codec support or NVENC/NVDEC engine count.
Codec/API capability, NVENC/NVDEC availability, and successful bounded operations do not establish DMA-BUF, NvSciBuf, CUDA-memory sharing, zero copy, or cross-stage synchronization compatibility.
For a Python API query, create a short task-local program from this Markdown and the installed public SDK, run it with the exact selected interpreter, and keep its raw output with the result. Installation belongs to setup and operation validation belongs to pipeline. This skill owns engine queries, classification, documentation reconciliation, and the compact direct report above.
Files
- ATTRIBUTION.mdAdded by AutoGineer933 B
- BENCHMARK.md7.6 KiB
- LICENSELicence file added by AutoGineer11.2 KiB
- SKILL.md7.6 KiB
- evals/evals.json3.5 KiB
- references/capability-queries.md9.4 KiB
- references/surface-selection-contract.md6.0 KiB
- skill-card.md4.5 KiB
- skill.oms.sig5.0 KiB
references/surface-selection-contract.md
Surface Selection Contract
This capability skill owns natural-language surface classification for capability requests. For other operations, the agent invokes the named owning skill through public skill dispatch, uses that skill's documented natural-language mapping, and applies the same pure four-value routing truth table in that stage; those stages do not inherit the capability-only unnamed preference below. Capability policy does not import routing code from setup or another sibling skill. Routing itself performs no probe, command, filesystem, package, or network operation. The owning skill's candidate gates provide its eligibility inputs; the documented unnamed-request preference below is explicit and never permits an unauthenticated fallback.
Within a capability request, a genuinely bare “video SDK” phrase with no
product qualifier is ambiguous: ask whether the customer means native Video
Codec SDK, PyNvVideoCodec, or both, then stop before probing. Report-only intent
or a request to probe does not authorize --runtime both.
A capability support/catalog request that names no SDK surface or product
phrase uses native-preferred fallback selection, whether broad, exact, or a
bounded subset; it is not an auto request. This is a pre-routing rule: when
native is eligible, feed explicit native to the four-value routing contract.
Do not evaluate Py; if the response displays that unselected peer, report it as
not_evaluated with reason surface_not_selected. Only when native is
ineligible, evaluate the Py candidate through the authority order below and
feed explicit pynvc to the routing contract when that route is eligible. If
neither is eligible, return a blocked capability response outside the surface
plan, preserve both typed reasons, and provide setup remediation without asking
for a surface choice. Carry a successfully resolved surface explicitly into
any authorized downstream operation; pass it as data through public skill
dispatch so the receiving skill does not reclassify it from the original
wording. Only explicit “auto”, “whichever”,
“best available”, “choose for me”, or equivalent wording that expressly
delegates the SDK choice is genuine auto; it is never both.
Naming Python or PyNvVideoCodec is explicit pynvc. Naming Video Codec SDK,
native, AppEncCuda, or AppDec is explicit native and never probes
PyNvVideoCodec.
Authority boundary
The surface plan is routing-only and non-authorizing. requested_surface is
exactly one of native, pynvc, auto, or both. eligibility maps each
surface to a boolean or an
{"eligible": bool, "reasons": [...]} object derived from validated live evidence.
The returned plan contains exactly:
{
"requested_surface": "auto",
"classification": "ready|blocked|selection_required",
"selected_surfaces": ["native"],
"eligible_surfaces": ["native"],
"reasons": []
}Do not treat classification: ready or an eligible_surfaces entry as setup
readiness, operation proof, live availability, package approval, or command
authorization. Capability discovery depends on jetson-video-setup; invoke its
public read-only workflow through skill dispatch and use its fresh readiness
result as the eligibility input. If setup is unavailable, return
dependency_required; do not import its files or invent a substitute probe.
Validation is direct and current. Require the requested Jetson and GPU. Native
eligibility requires one installed, package-verified
nvidia-video-codec-sdk, one package-owned Samples root, and the tools and
runtime libraries required by the selected report binary. Py eligibility
requires the exact interpreter selected by setup, one importable
PyNvVideoCodec distribution whose loaded module is inside that environment,
and a clean pip check. These facts establish installation eligibility only,
never an operation or product-support verdict.
Inspect only Py for explicit pynvc or the unnamed fallback, and inspect both
for both or genuine auto. Capability never scans for a venv, changes an
environment, or uses API/test outcomes to make an ineligible candidate
eligible. For both, an eligible peer may still run while the ineligible peer
retains its blocked outcome; for auto, apply the truth table below.
Resolution truth table
The table begins after natural-language classification and contains no fifth
“unnamed” request value. Canonical surface order is native, then pynvc.
Explicit requests never fall back.
| Request | Classification / selection |
|---|---|
native | ready with [native] when eligible, else blocked. Never fall back. |
pynvc | ready with [pynvc] when eligible, else blocked. Never fall back. |
both | ready only when both eligible; otherwise blocked, with each eligible branch selected for independent execution and an explicit blocked operation plus reasons for every ineligible peer. |
auto, exactly one eligible | ready, selects that surface. |
auto, both eligible | selection_required, selects none. |
auto, zero eligible | blocked, selects none. |
On selection_required, the agent runs no branch command and reserves no branch
output; ask the user to choose native, pynvc, or both. For both,
selected_surfaces lists the eligible branches that may launch, while the result
still represents every requested branch. The agent executes each eligible branch
through its owning skill with distinct outputs and records an explicit blocked
outcome and its reasons for every ineligible peer. It never hides a failed,
blocked, or unknown peer merely because another branch succeeds.
Aggregation
Do not translate branch outcomes into a synthetic cross-domain vocabulary. Preserve
the owning domain's statuses, including operation_verified, operation_failed,
blocked, and unknown, and roll them up only at the request result. A branch may
be operation_verified only after its authenticated operation succeeds. Missing,
extra, or invalid branch outcomes are contract failures, not evidence that readiness
changed after selection.
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-capability · 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-capability.zip