Skip to content

NVIDIA Video Codec: Encode-Decode Video#

Authors: Holoscan Team (NVIDIA)
Supported platforms: x86_64, aarch64
Language: Python
Last modified: July 11, 2025
Latest version: 1.0
Minimum Holoscan SDK version: 3.3.0
Tested Holoscan SDK versions: 3.3.0, 3.4.0
Contribution metric: Level 1 - Highly Reliable

This application demonstrates the use of NVIDIA Video Codec SDK. The application loads a video file, encodes the video using either H.264 or HEVC (H.265), decodes the video, and displays it with Holoviz.

[!IMPORTANT]
By using the NVIDIA Video Codec Demo application and its operators, you agree to the NVIDIA Software Developer License Agreement. If you disagree with the EULA, please do not run this application.

Requirements#

💡 Note: NVIDIA IGX Orin with integrated GPU is not currently supported.

Data#

📦️ (NGC) Sample App Data for AI-based Endoscopy Tool Tracking

Building and Running the NVIDIA Video Codec Application#

Python#

./holohub run nvc_encode_decode --language python

Configuration#

The application is configured with H.264 codec by default, it may be modified in the nvc_encode_decode.yaml file:

encoder:
  codec: "H264" # H265 or HEVC
  preset: "P3" # P1, P2, P3, P4, P5, P6, P7
  cuda_device_ordinal: 0
  bitrate: 10000000
  frame_rate: 60
  rate_control_mode: 0 # 0: Constant QP, 1: Variable bitrate, 2: Constant bitrate
  multi_pass_encoding: 1 # 0: Disabled, 1: Quarter resolution, 2: Full resolution

Refer to the NVIDIA Video Codec documentation for additional details.

Benchmarks#

We collected latency benchmark results using Holoscan Data Flow Tracking tools on the NVIDIA Video Codec sample application. The benchmark is conducted on x86_64 with AMD Ryzen 9 7950X, 128 GB system memory and NVIDIA ADA6000 GPU.

Encoder Configurations: - Bitrate: 10 MB - FPS: 60 - Rate Control Mode: 1 Variable Bitrate - Multi-pass Encoding: 1 Quarter Resolution

E2E Encoding Decoding FPS
Codec Preset Min Max Avg Min Max Avg Min Max Avg Avg
H.264 P3 6.242 8.423 6.743 0.536 0.865 0.593 5.258 7.307 5.699 145.270
P4 6.22 8.219 6.674 0.561 0.962 0.615 5.220 7.218 5.616 146.875
P5 6.508 8.441 7.044 0.921 1.403 0.971 5.229 7.097 5.658 139.433
P6 6.37 9.409 7.102 0.680 1.060 0.730 5.141 7.301 5.646 143.368
P7 6.529 8.531 7.107 0.740 1.155 0.795 5.104 8.231 5.650 142.727
HEVC P3 6.258 9.039 6.898 0.684 1.078 0.728 5.141 7.371 5.656 145.058
P4 6.146 9.351 6.788 0.684 1.088 0.731 5.130 7.301 5.642 143.481
P5 6.193 8.991 6.818 0.680 1.060 0.730 5.130 7.301 5.643 143.371
P6 6.337 9.113 6.924 0.682 1.109 0.733 5.254 8.043 5.729 141.633
P7 6.246 10.11 6.909 0.740 1.155 0.793 5.104 8.231 5.667 142.035

Note: all reported latency values are in milliseconds.

Licensing#

Holohub applications and operators are licensed under Apache-2.0.

NVIDIA Video Codec is governed by the terms of the NVIDIA Software Developer License Agreement, which you accept by clonging, running, or using the NVIDIA Video Codec sample applications and operators.