Jetson Video Benchmark
NVIDIAOfficialCreated by Vinit BansalDistributed by NVIDIA
- Skill
- Workflow
- Software development
- Apache-2.0
- Medium risk
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The jetson-video-benchmark skill provides a structured workflow for measuring the encode and decode throughput of the Jetson Video Codec SDK and PyNvVideoCodec. It supports live performance measurements using authenticated samples, preset comparisons, and codec-worker capacity sweeps. For scenarios where representative media is unavailable, the skill generates clearly labeled planning estimates based on official documentation. It enforces strict validation of inputs, environment readiness, and output reporting to ensure results are reproducible and verifiable.
What it does
- Measures encode and decode FPS and megapixels per second for specific workloads.
- Compares performance across different presets and surfaces.
- Tests codec-worker capacity through systematic sweeps.
- Generates performance estimates based on documented SDK references when media is absent.
- Validates benchmark results against strict output contracts and sample markers.
- Reports detailed metrics including mean, minimum, and maximum performance values.
When to use it
- When you need to measure actual encode or decode throughput on a Jetson device.
- When comparing the performance impact of different codec presets or surfaces.
- When determining the capacity of codec workers for a specific workload.
- When you require a performance estimate based on official documentation for planning purposes.
- When you need to verify performance metrics using authenticated SDK samples.
Advantages
- Ensures consistent and verifiable benchmark results through strict output contracts.
- Provides clear separation between live measurements and documentation-based estimates.
- Automates the preflight checks for environment and dependency readiness.
- Supports both native C++ SDK samples and Python-based PyNvVideoCodec workflows.
- Prevents invalid comparisons by enforcing strict input and configuration validation.
Usage examples
- “Measure the decode throughput for this H.264 elementary stream file: /data/input.h264”
- The agent validates the input file, checks the environment, runs the AppDecPerf sample, and reports the measured FPS and MP/s.
- “What is the expected encode performance for 1080p60 H.265 on Jetson Orin?”
- The agent provides a documented performance estimate based on the SDK reference, clearly labeling it as a non-measured planning value.
- “Compare P4 and P5 preset performance for this raw video file: /data/raw_frames.yuv”
- The agent runs the encode benchmark for both presets using the provided raw input and reports the throughput difference.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/nvidia/jetson-video-benchmark/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip jetson-video-benchmark.zip -d .agents/skills
Documentation by Vinit Bansal
Jetson Video Benchmark
Purpose
Measure codec-stage FPS and megapixels/second for an evidenced target and exact workload. Supported live routes are encode, decode, P4/P5 comparison, and a strictly increasing worker-capacity sweep. A separate no-media path calculates clearly labeled SDK-documentation estimates; it never claims a measurement.
Terminal gates
For a request solely for PSNR or SSIM, state that objective quality is outside this skill and needs a separately authorized workflow, then stop. Return only that scope response. Do not append an alternative benchmark or next step, name another tool, request media, probe, or install anything.
Resolve codec direction before probing or calculating. Explicit encode or decode wording wins. Otherwise, quality, preset, bitrate, rate control, recording, or compressed-output wording implies encode; explicitly compressed input, ingest, playback, or IP/RTSP input implies decode. Treat generic camera-count wording such as "connect" or "handle", and a codec name on a camera or device, as direction-neutral. Set neutral wording aside and resolve direction on the remaining cues; a neutral cue never creates a conflict. For an encode-led camera estimate, state that NVDEC applies only when cameras already emit the named compressed codec, keep encode primary, and ask the user to confirm direction after giving the planning scenarios. If non-neutral cues conflict or are absent, present both interpretations, state that a unique encode estimate also needs an exact preset and measured validation needs representative input, then ask which direction applies and stop at that gate. Transcoding consumes separate decode and encode budgets: measure it as the supported decode and encode routes and report each budget separately, never as one combined FPS.
An explicit live/run/real/actual measurement requires representative input for every requested direction: raw frames with format, geometry, and frame count for encode; a compressed elementary stream or container for decode. Each input must be one exact target-local path or user-supplied HTTP(S) URL. If any is absent, return only
input_requiredand ask for the missing item(s), including a separate exact path or URL for every requested direction, before reading workflow references or sibling skills, probing, authentication, recipe work, or workspace creation. Never benchmark the setup smoke fixture or substitute catalog media.A no-media planning/expected/indicative question follows documented-performance-estimates.md. It requires the exact documented row and, for a scaled estimate, clock provenance; it sets
measurement_performed: false. Preserve that reference byte-for-byte. Omitted preset, per-stream FPS, or stream mix does not block planning: enumerate the reference's bounded documented candidates and scenarios, disclose every assumption, and ask for the omitted values.
Live preflight
Read benchmark-workflow.md completely once,
then apply its preflight section. Preserve explicit
native, pynvc, and both; map delegated selection to auto. Obtain fresh
read-only readiness from jetson-video-setup, passing any exact interpreter
already supplied or established in this conversation. Setup otherwise checks
the conventional profile path. For auto, zero eligible surfaces blocks, one
runs, and two returns selection_required. Python encode and comparison need a
full-samples environment; decode performance may use pynvc-smoke.
Encode, compare, and encode-capacity also require a validated schema-2 recipe
from jetson-video-recipe. A missing dependency stops that branch with
dependency_required; an eligible peer may continue as partial.
Measure
Follow that same reference for sample allowlists, builds, direct argument lists, frame accounting, option checks, marker grammar, comparisons, and worker sweeps.
Show the dry-run plan, then use a fresh mode-0700 workspace. Authenticate each launcher immediately before use and launch its literal argument list.
Run one excluded whole-process warmup and at least three new measured processes per variant and surface, each with a finite timeout and without
-loop.Accept the sample-reported FPS only when its positive marker and processed frame count match. Apply every identity, workload, marker, and statistics check in benchmark-output-contract.md.
Report
Retain each launch's unedited output and write the compact result described by benchmark-output-contract.md. Report every repetition, recomputed mean/minimum/maximum, MP/s only when dimensions are sample-bound, partial branches, limitations, and retry reason. Label worker sweeps as codec-stage capacity bounds and preset comparisons as throughput-only.
Limitations
Results apply only to the evidenced target, release, clocks, sample, content, frame range, and controls; they are not a portable product ceiling.
Do not interpolate undocumented presets or scale across format, bit depth, chroma, codec, rate control, or tuning. Resolution scaling is allowed only as the estimate reference's explicitly labeled pixel-area heuristic.
Keep documented estimates per engine; use an all-engine multiplier only under the explicit aggregate-planning rule in the estimate reference.
The PyNvVideoCodec 2.1 encode-performance helper caps each worker at 1,000 frames; follow the common-frame rule in the workflow.
Preserve
input_required,selection_required,dependency_required,blocked,partial, andfailed; do not promote a peer's success.
Files
- ATTRIBUTION.mdAdded by AutoGineer930 B
- BENCHMARK.md7.8 KiB
- LICENSELicence file added by AutoGineer11.2 KiB
- SKILL.md6.4 KiB
- evals/evals.json6.2 KiB
- references/benchmark-output-contract.md3.6 KiB
- references/benchmark-workflow.md10.1 KiB
- references/documented-performance-estimates.md12.3 KiB
- skill-card.md4.9 KiB
- skill.oms.sig5.2 KiB
BENCHMARK.md
Skill Benchmark: jetson-video-benchmark
✅ Overall verdict: PASS — Recommended for publication
Publication Recommendation
Recommended for publication based on the completed evaluation evidence in this report.
Evaluation Metadata
Skill:
jetson-video-benchmarkEvaluation date: 2026-09-16
Evaluator version:
1.5.6Agents: Claude Code (
aws/anthropic/bedrock-claude-opus-4-8), Codex (openai/openai/gpt-5.5)Tasks: 7 evaluation tasks (7 positive)
Dataset digest:
sha256:d1c525d9b65879a764e8676b2177c71573dee5cbfbceb816d55ca67074b7086b(skill-evaluator-dataset-snapshot/1)Attempts per task: 3
Environment:
k8s-sandboxTier 2 evidence: required for publication
Tier 3 evidence: required for publication
Each task attempt ran in its own isolated sandbox pod.
What This Report Answers
The three-tier evaluation checks whether the skill:
is safe to use;
produces correct answers;
is discovered and activated when needed;
helps the agent complete the user's goal and expected workflow; and
avoids wasted skill and tool usage.
Results at a Glance
| Measure | Claude Code (Baseline → Skill Uplift) | Codex (Baseline → Skill Uplift) |
|---|---|---|
| Overall | Not available | 94.5% — baseline ran, but no comparable score was available; uplift unavailable |
| Security | Not available | 82.1% → 100.0% (+17.9 points) |
| Correctness | Not available | 52.9% → 100.0% (+47.1 points) |
| Discoverability | Not available | 94.3% — baseline ran, but no comparable score was available; uplift unavailable |
| Effectiveness | Not available | 34.8% → 93.0% (+58.2 points) |
| Efficiency | Not available | 85.2% — baseline ran, but no comparable score was available; uplift unavailable |
How to read this table: baseline is the same task attempted without the target skill. Scores are rounded to one decimal; threshold-adjacent values use additional precision so their displayed band matches the verdict. Uplift is derived from those displayed scores and shown in percentage points.
Example: 47.0% → 92.0% (+45.0 points) means the skill-assisted run scored 92.0%, 45.0 percentage points above its 47.0% no-skill baseline.
Token Usage
Actual Tier 3 execution usage is reported for every observed agent/case pair and both conditions.
| Agent | Dataset case | With skill | Without skill | Delta | Change | Coverage |
|---|---|---|---|---|---|---|
| claude-code | All cases | 811,096 | 1,310,555 | N/A | N/A | skill 7/7; base 10/21 |
| claude-code | benchmark-4k-planning-estimate | 141,466 | 72,101 | N/A | N/A | skill 1/1; base 2/2 |
| claude-code | benchmark-camera-direction-medium-quality | 150,509 | 65,461 | +85,048 | +129.92% | skill 1/1; base 1/1 |
| claude-code | benchmark-documented-estimate | 186,708 | 359,806 | N/A | N/A | skill 1/1; base 3/3 |
| claude-code | benchmark-natural-camera-capacity-planning | 109,049 | 123,731 | -14,682 | -11.87% | skill 1/1; base 1/1 |
| claude-code | benchmark-no-content | 63,049 | 599,533 | N/A | N/A | skill 1/1; base 1/3 |
| claude-code | benchmark-quality-boundary | 60,960 | 59,664 | +1,296 | +2.17% | skill 1/1; base 1/1 |
| claude-code | benchmark-undocumented-p4 | 99,355 | 30,259 | +69,096 | +228.35% | skill 1/1; base 1/1 |
| codex | All cases | 543,961 | 1,572,817 | N/A | N/A | skill 7/7; base 14/14 |
| codex | benchmark-4k-planning-estimate | 65,929 | 45,385 | +20,544 | +45.27% | skill 1/1; base 1/1 |
| codex | benchmark-camera-direction-medium-quality | 127,179 | 134,210 | N/A | N/A | skill 1/1; base 3/3 |
| codex | benchmark-documented-estimate | 65,755 | 159,060 | N/A | N/A | skill 1/1; base 2/2 |
| codex | benchmark-natural-camera-capacity-planning | 172,004 | 138,724 | N/A | N/A | skill 1/1; base 3/3 |
| codex | benchmark-no-content | 28,517 | 1,032,822 | N/A | N/A | skill 1/1; base 3/3 |
| codex | benchmark-quality-boundary | 28,338 | 33,628 | -5,290 | -15.73% | skill 1/1; base 1/1 |
| codex | benchmark-undocumented-p4 | 56,239 | 28,988 | +27,251 | +94.01% | skill 1/1; base 1/1 |
| ALL AGENTS | Dataset aggregate | 1,355,057 | 2,883,372 | N/A | N/A | skill 14/14; base 24/35 |
Prompt tokens include cached reads, so total tokens are prompt + completion (cached is not added twice). The Efficiency score uses (prompt - cached) + completion. N/A means the relevant trajectory counters were not available; coverage is never estimated.
Tier Status
| Tier | Purpose | Status | Evidence |
|---|---|---|---|
| Tier 1 | Static validation | PASSED WITH OBSERVATIONS | 11 validator(s); 9 finding(s) |
| Tier 2 | Semantic deduplication | PASSED | 2 validator(s); 0 finding(s) |
| Tier 3 | Live agent evaluation | PASS | 2 agent(s); 7 task(s) |
Findings and Observations
<details> <summary>Show detailed findings and successful checks</summary>
MEDIUM QUALITY/quality_efficiency: Deeply nested references in benchmark-output-contract.md (
skills/jetson-video-benchmark/SKILL.md)MEDIUM SCHEMA/body_recommended_section: Missing recommended section: '## Instructions' (
skills/jetson-video-benchmark/SKILL.md)MEDIUM SCHEMA/body_recommended_section: Missing recommended section: '## Examples' (
skills/jetson-video-benchmark/SKILL.md)LOW QUALITY/quality_correctness: No examples provided (
skills/jetson-video-benchmark/SKILL.md)LOW QUALITY/quality_discoverability: Description very long (389 chars, recommend 50-150) (
skills/jetson-video-benchmark/SKILL.md)4 additional finding(s) are available in the full evaluation artifacts.
</details>
Scoring Methodology
<details> <summary>Show dimension definitions, source signals, and thresholds</summary>
| Dimension | Question | Scored signals |
|---|---|---|
| Security | Is it safe to use? | security (100%) |
| Correctness | Is the answer correct? | accuracy (100%) |
| Discoverability | Was the right skill loaded when needed? | skill_execution (100%) |
| Effectiveness | Did the skill help complete the task? | goal_accuracy (50%) + behavior_check (50%) |
| Efficiency | Did it avoid wasted tool calls and token usage? | skill_efficiency (50%) + token_efficiency (50%) |
Dimension bands: PASS at 50% or above; NEUTRAL from 40% to below 50%; FAIL below 40%.
Overall Tier 3 lift: PASS at +5 points or more; FAIL at -10 points or less; values between those bands are NEUTRAL.
Overall verdict: PASS only when every configured dimension passes for at least one supported agent. Lift is reported as diagnostic evidence and does not override this gate.
The 50% attempt pass threshold is a separate per-task gate; it is not the dimension pass threshold.
Effectiveness is the equal-weight mean of goal completion (
goal_accuracy) and expected workflow adherence (behavior_check).Efficiency is 50% tool-call productivity (the backward-compatible
skill_efficiencywire id) and 50%token_efficiency. Positive-case skill routing is scored under Discoverability, not Efficiency; a negative case without a routing target is N/A. N/A sources are omitted, remaining weights are renormalized, and the dimension is marked partial.
Signals present in this run:
security(Security): unsafe operations, secret leakage, and unauthorized access.skill_execution(Skill Execution): whether the expected skill was selected, decoys were avoided, and the workflow executed.skill_efficiency(Tool Productivity): tool-call productivity (legacy wire id; routing is scored under Discoverability).accuracy(Accuracy): final-answer correctness against the reference answer.goal_accuracy(Goal Accuracy): whether the user's goal was achieved.behavior_check(Behavior Check): whether the expected workflow behavior was followed.token_efficiency(Token Efficiency): actual uncached prompt plus completion usage (50% of Efficiency).
</details>
Freshness
Regenerate this benchmark when the skill, evaluation dataset, target agent/model, evaluator version, environment, or scoring policy changes.
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-benchmark · 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-benchmark.zip