jetson-video-benchmark

Measures Jetson Video Codec SDK and PyNvVideoCodec encode/decode throughput with authenticated samples.

3.2k|370|Updated Feb 25, 2026
One-click install
npx skills add https://github.com/NVIDIA/skills --skill jetson-video-benchmark
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: jetson-video-benchmark
Source: https://github.com/NVIDIA/skills/tree/main/skills/jetson-video-benchmark
Command: npx skills add https://github.com/NVIDIA/skills --skill jetson-video-benchmark

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve?

Measuring real video codec performance on NVIDIA Jetson devices requires authenticated official samples, correct environment setup, and disciplined statistics; ad-hoc benchmarking produces unreliable or misleading FPS numbers. This Skill runs controlled encode/decode throughput, preset comparison, and codec-worker capacity benchmarks, or produces clearly labeled documentation-based planning estimates when media is unavailable.

Core Features & Use Cases

  • Authenticated throughput benchmarks: Runs dry-run then execute passes against official AppEncPerf/AppDecPerf or PyNvVideoCodec performance samples, reporting per-repetition FPS and MP/s with mean/min/max statistics.
  • Preset and surface comparisons: Compares P4/P5 presets or native versus Python surfaces while holding every other control constant, without inferring quality differences.
  • Capacity and planning estimates: Measures strictly increasing codec-worker concurrency, or produces clock-scaled and resolution-scaled SDK 13.0 documentation estimates labeled as theoretical bounds.
  • Use Case: Ask how many 1080p H.264 camera streams a Jetson can encode; the Skill either runs a measured worker-capacity sweep on your media or returns a clearly labeled theoretical codec-stream bound from documented SDK tables.

Quick Start

Ask your agent to measure the H.264 encode throughput in FPS of a specific video file on this Jetson using the jetson-video-benchmark skill.

Frequently Asked Questions about jetson-video-benchmark

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I benchmark video encode FPS on a Jetson device?

Provide one exact local media path or URL and request an encode benchmark; the Skill authenticates the official AppEncPerf or PyNvVideoCodec encode_perf.py sample, runs a dry run for review, then executes at least three measured repetitions and reports per-repetition FPS with mean, minimum, and maximum.

How do I compare P4 vs P5 encoder presets on Jetson?

Request a compare route with two recipes that differ only by preset, bound to the same content and frame range. The Skill reports only measured throughput differences and never infers quality or compression-efficiency ordering from preset names.

Can I get an FPS estimate without providing video media?

Yes, for planning questions the Skill returns a documented estimate from the SDK 13.0 1080p table scaled by the configured maximum video clock, with an optional disclosed pixel-area heuristic for other resolutions. It is always labeled as an estimate with measurement_performed set to false, never as a measured result.

Does this benchmark measure PSNR or SSIM video quality?

No. Objective quality metrics such as PSNR and SSIM are explicitly out of scope for this performance skill. A quality-only request receives a scope-only response stating that a separately authorized quality workflow is required.

Why does PyNvVideoCodec decode not report megapixels per second?

The authenticated PyNvVideoCodec 2.1 decode_perf.py sample does not report stream dimensions, so MP/s is set to null with an explicit omission reason. Caller-supplied dimensions are never used to derive that metric.

What are the limitations of Jetson codec capacity estimates?

Measured concurrency is a codec-stage capacity bound only, excluding capture, ISP, transport, AI, display, and end-to-end latency. No-media estimates are theoretical stream bounds, and the PyNvVideoCodec 2.1 encode helper caps each worker at 1,000 frames.