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.1 (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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pynvvideocodec-2.2.1-cp314-cp314-win_arm64.whl (19.5 MB view details)

Uploaded CPython 3.14Windows ARM64

pynvvideocodec-2.2.1-cp314-cp314-win_amd64.whl (20.4 MB view details)

Uploaded CPython 3.14Windows x86-64

pynvvideocodec-2.2.1-cp314-cp314-manylinux_2_34_aarch64.whl (26.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

pynvvideocodec-2.2.1-cp314-cp314-manylinux_2_28_x86_64.whl (26.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

pynvvideocodec-2.2.1-cp313-cp313-win_arm64.whl (19.5 MB view details)

Uploaded CPython 3.13Windows ARM64

pynvvideocodec-2.2.1-cp313-cp313-win_amd64.whl (20.4 MB view details)

Uploaded CPython 3.13Windows x86-64

pynvvideocodec-2.2.1-cp313-cp313-manylinux_2_34_aarch64.whl (26.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

pynvvideocodec-2.2.1-cp313-cp313-manylinux_2_28_x86_64.whl (26.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pynvvideocodec-2.2.1-cp312-cp312-win_arm64.whl (19.5 MB view details)

Uploaded CPython 3.12Windows ARM64

pynvvideocodec-2.2.1-cp312-cp312-win_amd64.whl (20.4 MB view details)

Uploaded CPython 3.12Windows x86-64

pynvvideocodec-2.2.1-cp312-cp312-manylinux_2_28_x86_64.whl (26.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pynvvideocodec-2.2.1-cp312-cp312-manylinux_2_28_aarch64.whl (26.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

pynvvideocodec-2.2.1-cp311-cp311-win_arm64.whl (19.5 MB view details)

Uploaded CPython 3.11Windows ARM64

pynvvideocodec-2.2.1-cp311-cp311-win_amd64.whl (20.4 MB view details)

Uploaded CPython 3.11Windows x86-64

pynvvideocodec-2.2.1-cp311-cp311-manylinux_2_28_x86_64.whl (26.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pynvvideocodec-2.2.1-cp311-cp311-manylinux_2_28_aarch64.whl (26.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

pynvvideocodec-2.2.1-cp310-cp310-win_amd64.whl (20.4 MB view details)

Uploaded CPython 3.10Windows x86-64

pynvvideocodec-2.2.1-cp310-cp310-manylinux_2_28_x86_64.whl (26.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pynvvideocodec-2.2.1-cp310-cp310-manylinux_2_28_aarch64.whl (26.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

File details

Details for the file pynvvideocodec-2.2.1-cp314-cp314-win_arm64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 d22756caf8ccdd67b7e56efbddda41c61e7fa1fbad0e3e38e846e099da75f84d
MD5 3986b026c0e5283b4852178e38889dca
BLAKE2b-256 48fc024318c839db29e82dea38a3be2c5630de481a3298941b41335248d4e194

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 823d20732107678fc89d308accd99000041d4dd797b81dd7de0546c3535408f2
MD5 1f99bfb9f9345cf05d8401e02a111ab3
BLAKE2b-256 45f3124a32a62032e44b3f543732150e713e438bd6034532217b1f6af65ba9a5

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp314-cp314-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 6bf0c5ca7988b95c2a43c427d5a3599fd2265c7a3527994d046f9f323dd7e219
MD5 1693e71b6ed36f909e273c9472894e50
BLAKE2b-256 793fd52b3a55512502b2a95b6f551fce8681c2fe11a811bdbd26e9c195d587d4

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3acfd313bb3835452aae4fbe326060bc16351ae2ce2dff66c5e5763ca272b39e
MD5 ac5527a9eab104959faa1b64f7a068a1
BLAKE2b-256 184a82b55f4cd15e209a76d2db3aa5f3ad453c0e5fa49c9a86dcc9273e3193c2

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 bb366dd4b18c7e95dabdd11934b23fe2cf6a67765a08679cbb61f95eda572ce6
MD5 9ac88be63ce13b08b140e8fec3667da6
BLAKE2b-256 8af3d5514482807a9f15e97da64dce3eb383829ab4f832cf51ad5b4d23e3cbf5

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1da855ba58a9daa03daf55f406cd9cd64b97721c4a3b19d7b032222217f06c24
MD5 fa3abd74ede975563a27f09743c43587
BLAKE2b-256 cddaaa2f16045e0c48f5a515f7c7157f148e5ceb9bc3bcf66cbe61a553d2f94e

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp313-cp313-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 8eac60b70fdeef0ee691ecacaa69e3c0fb21c6cd58e641db9c502643a8d6fb6b
MD5 a3923c364da2a67e430733fd36758aca
BLAKE2b-256 1d9b3e030140fa42e4974b4511b98965e217e8ff0ac82d9dd370a352721c0d1a

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c1ac98dfd298ba0b0fa1110d15c3016e4fe87e34dfa2323b94318aaf34705ab8
MD5 6448f06ccb229325eae7a598f7d9eceb
BLAKE2b-256 d1169aa9f7c83ec941ee4fb30b7a35af30e3ccc5ec541e422fdaf08937f7e16f

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 fc81232a84341feccdaf929d0e972132f67eb502f0655c08ca97237491b87677
MD5 c94f036946cba4d88dfb07d56b2207a1
BLAKE2b-256 25d5ac9a47a0d6ed56261bacff7bd180213ed3c8582e2446c2f3985a5ffd68fc

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c94447a73764b1b4a10332e9bcbb99898bdc799f057248c1d5665710b3a1531d
MD5 12fa482f719d16ff8fb1baaf2babf6e4
BLAKE2b-256 ab95cd8bee962aaba5a399368ce56e90a057dea725cc5bef3e45ad1b67e39be0

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e1166860b2f2243c359adf04e4a82925be21a3b9085e830044841a8904fb8417
MD5 4883973c2a676c737bbc47e02c1d98a0
BLAKE2b-256 ccb057a5fe847d56a40e6acbf0dfb03de5f51180fc8eec5bc28e42423c681798

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f63c8a7354897cabfb9f8593e91fcbec9c8b27febecb607248d90de5c51f8681
MD5 dbcc228e79e76fa64a6beace7d988143
BLAKE2b-256 761e909361ea73685550280f1e96cbf1a3c4784c3032042b7c38f8d0c93547aa

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 016d7f7a26a461b15edf46bcf385ff17047cdd2b04cae011793d821befbdb4e5
MD5 cad722719af49fe7e152180953e536c7
BLAKE2b-256 1211359150b3c0aaf27e9d74e35c79e2ecf574930e86ff97c1bde90460d9e8f7

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4ea7d92ca0af44a0491df2bfd6459992a4430a3f76a738cbbdf9b24f71206c92
MD5 93e39f3d4b625b52e827306c219e7d3b
BLAKE2b-256 5c1d6938b0ea671b02dad055b1219ad80355695ad2aebcbf77643705f45cff29

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5ff7a850ed8f2d1eee09b426acc3e117493232fc988b7004e81f92a94a1a9379
MD5 7127410a1653d417a828fe4cd6fbe518
BLAKE2b-256 b6ccb8faa6958185880e572095f8042553e38848f15bbeb105d378887ac378fa

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e60f9111e942fad18b58d3227b41467ee8440de6734643e50823a33f612149b1
MD5 a068cc3c2fd7cbef0a065b025669944d
BLAKE2b-256 4d8133bab449644ad85ec1e20adb26456c19b16630435e94c5f427c748691b04

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b4dfc45824f9fa55ddb8f6fc0ff119b9218071d7aefad780b2ccd3b5c324c049
MD5 e72fa93301e49314cb847c4c0a0008c5
BLAKE2b-256 d102ab81b94e3991dd8fd2f7e2544515ce569b0ae65cd84395f35eb8b01d062f

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d599990f61a8b70ecf103873111d841c1316b6573be3330300e70c5ee5528662
MD5 27cc23f155711c5c8f65b46c7fb7ff3e
BLAKE2b-256 5ea838ddd1741e50dc519d51292f875e8d76881481b2a4bbdeafd7170873d334

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.2.1-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.1-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 37958f4bcd045bb4a6114eec33883877883c09a89e6d148c9f20b0c9552d1919
MD5 7c2f1cf3b846d0ab0cb66c6955c1bc44
BLAKE2b-256 e7e8cab09d30a43e101d118d82f4d5fc2465993e9dfd991525239ddd2bba5eb2

See more details on using hashes here.

Release history Release notifications | RSS feed

2.2.3

19 files

2.2.2

19 files

This release

2.2.1 This release

19 files

2.2.0

15 files

2.1.0

11 files

2.0.5

15 files

2.0.4

18 files

2.0.3

11 files

2.0.2

9 files

2.0.1

9 files

2.0.0

9 files

1.0.2

3 files

1.0.1

3 files

1.0.0

2 files

0.1.2

1 file

0.1.1

1 file

0.1.0

1 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