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://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/capability-queries.md
Capability query guidance
Classification
| Evidence | Meaning | Never means |
|---|---|---|
api_query_helper | A live SDK API returned raw fields. | Operation success or product support. |
official_sample_report | An authenticated NVIDIA sample emitted its report grammar. | API truth, exact operation success, or product support. |
official_sample_operation | The exact authenticated tuple passed observable encode/decode checks. | Other tuples or documented product support. |
documentation_reference | An applicable NVIDIA row/field was captured. | Current installation readiness. |
Keep missing, malformed, unavailable, or failed authority unknown. Use
unsupported as a product verdict only for applicable documentation No; a
raw decoder API false remains explicitly an API result.
PyNvVideoCodec API query
Use the exact interpreter returned by the setup readiness check. Before and
after querying, record the interpreter path, PyNvVideoCodec distribution
version, imported module path, and requested GPU. Require the module path to be
inside that interpreter's environment. Do not set import paths, scan for a
venv, or switch to system Python.
Create a short task-local query from the installed public API and this
reference. Inspect the installed API signature when necessary rather than
guessing enum or argument names. For a broad encoder catalog, call
GetEncoderCaps for h264, hevc, and av1; a request naming specific
members of that set queries only those. Call GetDecoderCaps for the scoped
tuple set below. Preserve the raw return values and per-call exceptions. Keep
the program task-local and apply the user's normal workspace cleanup policy.
A successful GetEncoderCaps record is capability_reported,
supported=null, and operation_status=not_tested. Fields absent from the
installed extension are unknown rather than unsupported.
A broad decoder catalog covers these 120 unique tuples:
codecs:
mpeg1,mpeg2,mpeg4,vc1,h264,hevc,vp8,vp9,av1,jpeg;chroma:
monochrome,420,422,444;bit depths:
8,10,12.
Require exactly 120 unique attempted tuples for a broad catalog. A request
naming specific decoder families queries only those families across the same
four chroma formats and three bit depths, states the attempted count, and skips
nothing within that scope.
bIsSupported=1 makes the raw record capability_reported, supported=true,
and its limits applicable. Zero makes the raw record supported=false; this
is a namespaced API result, never the product verdict, and the remaining
zeroed output fields are inapplicable. A missing enum, call, or flag is
unknown.
If the public helper selects only GPU 0, retain every requested nonzero-GPU record as unknown rather than relabeling GPU-0 facts.
Native official-sample reports
For a query-only request, do not run setup's encode/decode smoke merely to
obtain reports. Reuse current authenticated package-owned report binaries when
available, or create a fresh user-owned report build from the single
package-owned nvidia-video-codec-sdk 13.0.x Samples tree. Follow the
pipeline native build contract,
building only AppEncCuda and/or AppDec; building report binaries is the
only mutation and does not authorize package installation, encode, or decode.
Recheck the binary SHA-256 before and after, require real ldd resolution of
libcuda.so.1 plus libnvidia-encode.so.1 for AppEncCuda or
libnvcuvid.so.1 for AppDec, reject stub paths, use a clean bounded
environment, and invoke exactly:
"$APPENC" -ec
"$APPDEC" -dcIf package, source, tool, or library authentication fails, report unknown and request setup repair. Never execute an encode/decode operation under query-only authorization.
Accept AppEncCuda -ec only when exit is zero, timeout is false, no explicit
CUDA/NVENC/error/failure marker appears, and one recognized grammar is exact:
legacy: one
Encoder Capability Summary, one detail hint, uniqueGPU <ordinal> - <name>blocks including the selected GPU, one codec-support and capability-summary section per GPU, and exactly one H264/HEVC/AV1 row;SDK-13 compact: one
Encoder Capability, unique GPU blocks including the selected GPU, and one basic H264/HEVC/AV1yes|norow per GPU.
Accept AppDec -dc under the same process rules and either:
legacy: unique GPU blocks including the selected GPU, one
GPU Decoder CapabilitiesandCodec Support Summaryper GPU, and one detail hint;SDK-13 compact: one
Decoder Capability, oneGPU in use: <name>, at least oneCodec ... BitDepth ... ChromaFormat ... Supported ...row, and everyCodec-prefixed line matching that strict grammar. Because this form has no ordinal, it applies only to requested GPU 0.
Preserve raw row values and recognized format variant. Native reports are
independent: one failure must not erase the other. Never synthesize the Py
decoder matrix from -dc output or translate a sample yes, no, or numeric
Supported field into a product verdict.
Documentation reconciliation
Identify the live product independently from capability values. Prefer exact immutable device-tree/product evidence; never infer a SKU from GPU name, memory, engine count, queried limits, operation behavior, or similarity. A generic Thor identity remains a family identity.
Read the NUL-terminated device-tree nodes with tr '\0' '\n'.
/proc/device-tree/compatible, or its
/sys/firmware/devicetree/base/compatible mirror, supplies exact board/module
identifiers when present; /proc/device-tree/model supplies only the family
label. Record the exact path and literal values beside the documentation row.
Open each applicable official URL at execution time with the agent's web retrieval tool. Use the live page, not a cached excerpt or model memory. If a page cannot be retrieved or its row-to-column binding cannot be verified, record the attempted URL, UTC time, failure reason, and affected fields as unknown; do not reconstruct the values.
Use the official links in SKILL.md; do not preserve a copied product table in
the skill. Record retrieval date, URL, table title, all header levels, exact row
label, exact field label, and literal cell. If extraction loses the
row-to-column binding, the field is unknown. Never use an application note from
another SDK release.
Select an HTML table by its own exact caption or section anchor, not the first raw-text occurrence of its title, which may be a navigation link. Parse only that closed table element and require one ordered header binding for each cell. Repeated headers, duplicate matching tables, a row-width mismatch, extraction that crosses table boundaries, or conflicting cells makes the field unknown; never choose one value. For codec-specific tables, do not reuse rows from a preceding H.264 or HEVC table when evaluating AV1.
Capture documentation evidence manually as part of the agent workflow; there
is no scraper or copied table to maintain. Retain one compact record per claimed
field with: UTC retrieval time, source URL and title, SDK release, ordered
header path, exact row label, exact field label, literal cell text, the live
product-identity evidence used for applicability, and applicability as
exact, candidate_consensus, or unknown. A missing value makes that field
unknown rather than permission to reconstruct it from memory.
An authenticated candidate row is a current-document row whose product label is consistent with every fresh immutable device-tree or product identifier observed from the live target. Record those identifiers and their source paths beside the row. GPU name, memory, engine count, API fields, and test outcomes cannot authenticate or exclude a row. When immutable evidence identifies one exact product, use only its exact row and do not invoke consensus.
For a generic NVIDIA Jetson Thor Developer Kit or NVIDIA Thor identity,
authenticate every matching Jetson/IGX Thor row. Publish candidate-row
consensus only when all candidates agree for the exact field; do not narrow
candidates using the query or test outcome.
The support matrix and application note may differ or omit an exact tuple. Preserve disagreement instead of choosing silently, and never expand a family-level statement into an undocumented chroma/bit-depth/profile claim.
Exact operation handoff
Documentation No ends the normal availability check. When documentation is
positive or unknown and the user asks for live availability, obtain a schema-2
recipe and follow the pipeline official-sample contract. Require exact input
geometry/format/frame count, fresh nonempty output, anchored success markers,
and independent authenticated decode of the same path/size/SHA-256. Container
structure, exit zero, and an encode marker alone are insufficient.
If the user explicitly requests a diagnostic despite documentation No, run
only the exact requested tuple and label its result separately as
operation_verified or operation_failed. The documentation-derived product
verdict remains unsupported regardless of that diagnostic result.
For AppEncCuda AV1 output, independently decode the exact produced path with
the package-owned decoder as the pipeline reference requires. Container
structure alone deliberately carries operation_verified=false; only the
independent decode, with a positive frame count matching the request, supports
operation_verified=true.
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