Skip to main content

PyNvVideoCodec

PyNvVideoCodec is NVIDIA's Python-based library that provides simple yet powerful Python APIs for hardware-accelerated video encoding and decoding on NVIDIA GPUs.

PyNvVideoCodec is built on top of the Video Codec SDK and offers encode, decode, and transcode performance on par with it.

The library is distributed under MIT license and is officially supported by NVIDIA.

Features

PyNvVideoCodec supports following features:

Decode Features

  • Seek and frame sampling: Provides efficient and flexible methods for fetching video frames in various modes, including sequential, random, periodic, indexed, batched, and sliced, as well as at a specified target frame rate.
  • Decoder caching: Optimizes decoding of short video clips through decoder caching and reconfiguration.
  • Threaded decoder: Supports decoding on separate threads, delivering pre-decoded frames with near-zero latency, enabling high-performance video processing pipelines.
  • Decode statistics extraction: Enables extraction of low-level decode statistics—such as QP values, coding-unit types, and motion vectors—from H.264 and H.265 streams. These statistics provide valuable insights into video quality, content complexity, and encoder behaviour.
  • Video processing from buffer: Supports video processing from memory buffers, reducing I/O overhead, enabling streaming applications.
  • Low latency decode: Offers zero-latency decoding for video sequences that do not contain B-frames.
  • SEI extraction: Supports the extraction of Supplemental Enhancement Information (SEI) messages, allowing access to additional information such as HDR information, timecodes, and custom user data.
  • Stream metadata access: Enables access to stream metadata, including frame width, height, bit depth, and keyframe indices, to enhance content management.
  • GIL handling: Improved multithreaded performance through better handling of Global Interpreter Lock (GIL) in C++ layer.
  • Multi-GPU decode: Enables multi-GPU decoding to efficiently handle larger workloads.
  • Extended codec support: Supports codecs H.264, HEVC, AV1, VP8, VP9, VC1, MPEG4, MPEG2, and MPEG1
  • 4:2:2 decode: Supports 4:2:2 decoding for both H.264 and HEVC formats on Blackwell GPUs (NV16, P210 and P216 surface formats).
  • Extended output formats: Decode to various output formats including NV12, YUV420, YUV444, NV16, P010, P016 and RGB24(interleaved and planar)

Encode Features

  • Encoder reconfiguration: Supports encoder reconfiguration, enabling dynamic updating of encoding parameters without recreating encoder instances.
  • SEI insertion: Allows insertion of SEI messages during encoding.
  • GIL handling: Improved multithreaded performance through better handling of Global Interpreter Lock (GIL) in C++ layer.
  • Multi-GPU encode: Enables multi-GPU encoding to efficiently handle larger workloads.
  • Codec support: Support encoding to codec H.264, HEVC, and AV1.
  • 4:2:2 encode: Supports 4:2:2 encoding for both H.264 and HEVC formats on Blackwell GPUs (NV16 and P210 surface formats).
  • Extended input formats: Encode from various input formats including NV12, YV12, IYUV, YUV444, YUV420_10BIT, YUV444_10BIT, NV16, P210, ARGB, ABGR, ARGB10, and ABGR10.

Transcode Features

  • Segment-based transcode: Enables transcoding of video segments based on timestamp ranges, ideal for content editing and partial processing.

What's New

v 2.2.3 (Latest)

  • Windows on ARM64 support (NVIDIA RTX Spark): Brings native, hardware-accelerated Python video APIs to Windows on ARM64, enabling high-performance video and AI pipelines on NVIDIA RTX Spark.

v 2.2

  • NVIDIA Jetson support: Brings easy-to-use, GPU-accelerated Python video APIs to Jetson, making it easy to build video and AI pipelines for robotics and other edge devices.
  • NVIDIA DGX Spark support: Unlocks high-throughput, Python-based video decode and encode on DGX Spark, accelerating video curation, experimentation, prototyping, training, and deployment of video and AI pipelines.
  • Access to in-memory video data: Reads video directly from Python byte data and streams, allowing video input from network buffers or cloud storage (such as S3) without writing to temporary files, while still supporting random frame access and batch retrieval.
  • New samples:
    • Face protection: Jupyter notebook that demonstrates an important privacy use case on Jetson—detecting faces in video with a TensorRT-optimized RetinaFace model and blurring them using GPU-accelerated Gaussian blur to protect identities in video.
    • Video decode from memory: Illustrates decoding video directly from in-memory Python byte data and seekable binary streams (such as bytes, bytearray, memoryview, BytesIO, or file handles).
    • Video transcode: Shows end-to-end GPU video transcoding—demuxing, decoding, encoding, and muxing—using hardware-accelerated video decode and encode.
    • Video encode with muxing: The encode sample now shows how to write encoded video directly into container formats such as MP4 and MOV.

Distribution

PyNvVideoCodec library is distributed in two formats: binary distribution via PyPI and source code distribution via NVIDIA NGC. In both cases, the library and its dependencies can be installed using a single pip install command.

This package on PyPI contains Python WHLs of the PyNvVideoCodec library and sample applications that demonstrate the use of the PyNvVideoCodec API. To install these please open the shell prompt, and run the following command.

$ pip install pynvvideocodec

This is the recommended way to install PyNvVideoCodec.

Upon installation of the wheel, the sample applications and documents are placed in the Python site-packages directory. The specific location of site-packages may vary depending on the operating system and Python environment. The path can be identified by running:

import site; print(site.getsitepackages())

Sample Applications and Documents

  • A package containing PyNvVideoCodec source code, Python sample applications and documentation can be downloaded from NVIDIA NGC.
  • For your convenience, the documents are also accessible online at PyNvVideoCodec Online Documentation.

Metadata

Release files for pynvvideocodec 2.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for pynvvideocodec 2.2.3
File
pynvvideocodec-2.2.3-cp314-cp314-win_arm64.whl CPython 3.14 CPython 3.14 Windows ARM64 Details
pynvvideocodec-2.2.3-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
pynvvideocodec-2.2.3-cp314-cp314-manylinux_2_34_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.34+ ARM64 Details
pynvvideocodec-2.2.3-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
pynvvideocodec-2.2.3-cp313-cp313-win_arm64.whl CPython 3.13 CPython 3.13 Windows ARM64 Details
pynvvideocodec-2.2.3-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pynvvideocodec-2.2.3-cp313-cp313-manylinux_2_34_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.34+ ARM64 Details
pynvvideocodec-2.2.3-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
pynvvideocodec-2.2.3-cp312-cp312-win_arm64.whl CPython 3.12 CPython 3.12 Windows ARM64 Details
pynvvideocodec-2.2.3-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pynvvideocodec-2.2.3-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
pynvvideocodec-2.2.3-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
pynvvideocodec-2.2.3-cp311-cp311-win_arm64.whl CPython 3.11 CPython 3.11 Windows ARM64 Details
pynvvideocodec-2.2.3-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pynvvideocodec-2.2.3-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
pynvvideocodec-2.2.3-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
pynvvideocodec-2.2.3-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
pynvvideocodec-2.2.3-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
pynvvideocodec-2.2.3-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details

Total release size: 452.6 MB

Release files / pynvvideocodec-2.2.3-cp314-cp314-win_arm64.whl

Download URL pynvvideocodec-2.2.3-cp314-cp314-win_arm64.whl
Size 20.4 MB
Tags CPython 3.14 Windows ARM64
SHA-256 checksum
How to use checksums
3d45624af9cc705fecf3cd678d6dd28b0e750162563d869bccd557cb591ca286
BLAKE2b-256 checksum
How to use checksums
ee180145c6a28c1541b04d45b62954e1f77b03709d26cb8a6cd4fe0dfb20c271
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp314-cp314-win_amd64.whl

Download URL pynvvideocodec-2.2.3-cp314-cp314-win_amd64.whl
Size 20.6 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
223271328633fa256eb30903008ab7bccf6fccfa51647a5755e0df486fecdd25
BLAKE2b-256 checksum
How to use checksums
7b9d3aa82e8df0b3d958d9f77212b3b318ba4f06b03104f3c037b31d7e01bc7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp314-cp314-manylinux_2_34_aarch64.whl

Download URL pynvvideocodec-2.2.3-cp314-cp314-manylinux_2_34_aarch64.whl
Size 26.8 MB
Tags CPython 3.14 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
c124c73132b82383347d05c526de1403adea79c217381a20d1a5af9a6cf1b79e
BLAKE2b-256 checksum
How to use checksums
9de2191eba977cbfe7ab63a6a9180a45f883f404ec0b36d17604da561655d2a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL pynvvideocodec-2.2.3-cp314-cp314-manylinux_2_28_x86_64.whl
Size 26.9 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ffa03cedc4128456727fd5d1cf5a91fa747cda6cf6544d1b603b1b9d84d00eae
BLAKE2b-256 checksum
How to use checksums
48f8bf41ea1d36609b82deaaaa1206b3858eedda8145c5c188bfd3b75cab4611
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp313-cp313-win_arm64.whl

Download URL pynvvideocodec-2.2.3-cp313-cp313-win_arm64.whl
Size 20.4 MB
Tags CPython 3.13 Windows ARM64
SHA-256 checksum
How to use checksums
b962a1ac8dfb4b3c129783f7f46a3585b1f931a36032d4e5525d446f8ecd485e
BLAKE2b-256 checksum
How to use checksums
3ccd609feb8a388cfc616f5d36f360c1f917dc332185a998829c4c7252903225
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp313-cp313-win_amd64.whl

Download URL pynvvideocodec-2.2.3-cp313-cp313-win_amd64.whl
Size 20.6 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
48c5dd9f4cd23098079c629c0446702c8b3a148dff6f8f851d66844743a8128b
BLAKE2b-256 checksum
How to use checksums
d15acf5795e73dc21874fea3c9be59cc69a7384bcb526f48268055ae814a0e9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp313-cp313-manylinux_2_34_aarch64.whl

Download URL pynvvideocodec-2.2.3-cp313-cp313-manylinux_2_34_aarch64.whl
Size 26.8 MB
Tags CPython 3.13 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
73ef5aa2ee95f795758bf08638626e972a75dd4b70e3aa7e92d128a096565062
BLAKE2b-256 checksum
How to use checksums
49e84c28092aa1ac2ce5ac75ef6632e6394a4d75ed3e2be364a25d8213b877a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL pynvvideocodec-2.2.3-cp313-cp313-manylinux_2_28_x86_64.whl
Size 26.9 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
84baf32244ee9e3b047cd19671536587c3e54abab9dddfc7e3ec4d413c1704b1
BLAKE2b-256 checksum
How to use checksums
a72034bb7453672e6cb72c125d98c50c764981eb0813c825588aec9d9639f823
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp312-cp312-win_arm64.whl

Download URL pynvvideocodec-2.2.3-cp312-cp312-win_arm64.whl
Size 20.4 MB
Tags CPython 3.12 Windows ARM64
SHA-256 checksum
How to use checksums
871fb41bfe275db3cfa645b1ddb5bf447bea49d0265d487e821f63d240caccca
BLAKE2b-256 checksum
How to use checksums
6fedf4e5ec422454b8658cd270ff9df22b47a1da4fb2c42825aac2947722baf5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp312-cp312-win_amd64.whl

Download URL pynvvideocodec-2.2.3-cp312-cp312-win_amd64.whl
Size 20.6 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
a535d5acededa18602cfc5898be7e906099e34419e91448e348f18bdf6f11329
BLAKE2b-256 checksum
How to use checksums
e29abdbc41120281a4bd6728a348e088eeca661dd4bb30d9fa0555374ec426e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL pynvvideocodec-2.2.3-cp312-cp312-manylinux_2_28_x86_64.whl
Size 26.9 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
126224753a41655c72c1576cb23a835cb853a1a3c3568d78360ff07d24627b42
BLAKE2b-256 checksum
How to use checksums
60a9e4b692f63f7e4085838e7d444b7e5d4a01c6e43843abeff0e31e27ebaf81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL pynvvideocodec-2.2.3-cp312-cp312-manylinux_2_28_aarch64.whl
Size 26.8 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
b9bb2b4a007965672a9fd02d70c3eba75eed23bd77c6ebef0c8ffbfcf506c0fe
BLAKE2b-256 checksum
How to use checksums
38bc658935efcb581a77d3a8b1f349ea2f8aa87b278616eabbb7e05196543043
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp311-cp311-win_arm64.whl

Download URL pynvvideocodec-2.2.3-cp311-cp311-win_arm64.whl
Size 20.4 MB
Tags CPython 3.11 Windows ARM64
SHA-256 checksum
How to use checksums
2b8a3312f5938be960db4d0447845131d97a09f224405f933d74d588864e2d26
BLAKE2b-256 checksum
How to use checksums
ccc7985353956f494a3b223efc26bfa1c7711c04677ed5cd616e452f5d99716a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp311-cp311-win_amd64.whl

Download URL pynvvideocodec-2.2.3-cp311-cp311-win_amd64.whl
Size 20.6 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
cc1a1eaaed591f98a1e96bb5d28caeb5f47157682c3c8981316dc44450529015
BLAKE2b-256 checksum
How to use checksums
7479267bd233b93812b34afb10d322652faa3fcbaefa6c420d09178c8a4a4d24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL pynvvideocodec-2.2.3-cp311-cp311-manylinux_2_28_x86_64.whl
Size 26.9 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
eef8954b28f7d43b3c6e65eceac488c28ba3ca511366ad8d260885303cf126d2
BLAKE2b-256 checksum
How to use checksums
11bf1c144a2ccd0dc5607a0d4e9bae0f49dda0dd11d5ca5c7289b48fed991e21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL pynvvideocodec-2.2.3-cp311-cp311-manylinux_2_28_aarch64.whl
Size 26.8 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
0301be2bdf921fb6456a1f6087b7364f65501e895a2cb3bf7d73b8fe4ef5940b
BLAKE2b-256 checksum
How to use checksums
e8b4d8a2695b108bf9dc87ac2070aa4e1579b607829a7f14f76175ca8cb6ecf8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp310-cp310-win_amd64.whl

Download URL pynvvideocodec-2.2.3-cp310-cp310-win_amd64.whl
Size 20.6 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
5e862f2f56294fee116cee438899bdd490d932f575761c6b1632fd5e4f562405
BLAKE2b-256 checksum
How to use checksums
2c13083e92f5d460e3b4f26092090b83688b4f7838b4c963ec35c2f4efbcb22b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL pynvvideocodec-2.2.3-cp310-cp310-manylinux_2_28_x86_64.whl
Size 26.9 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6d401816b515e19fd5b3fe39adcaf63e1462fd8d13c0443ed0c52fb40ecacbb0
BLAKE2b-256 checksum
How to use checksums
dfb03cb1ea72d9f2d3678190d5365bde1ee4f32e59a290adfc1f8ade94e06efe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pynvvideocodec-2.2.3-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL pynvvideocodec-2.2.3-cp310-cp310-manylinux_2_28_aarch64.whl
Size 26.8 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
92555b2af82459827f0c9142f79c4fd197a72c2eebf8aef09fa3370c8ba6fbfb
BLAKE2b-256 checksum
How to use checksums
0df706628002d2058b978e0f81fe3d6a439540fdb9ae8d223e52dcd720b3e396
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

2.2.3 This release

19 release files

2.2.2

19 release files

2.2.1

19 release files

2.2.0

15 release files

2.1.0

11 release files

2.0.5

15 release files

2.0.4

18 release files

2.0.3

11 release files

2.0.2

9 release files

2.0.1

9 release files

2.0.0

9 release files

1.0.2

3 release files

1.0.1

3 release files

1.0.0

2 release files

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page