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.

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.3-cp314-cp314-win_arm64.whl (20.4 MB view details)

Uploaded CPython 3.14Windows ARM64

pynvvideocodec-2.2.3-cp314-cp314-win_amd64.whl (20.6 MB view details)

Uploaded CPython 3.14Windows x86-64

pynvvideocodec-2.2.3-cp314-cp314-manylinux_2_34_aarch64.whl (26.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

pynvvideocodec-2.2.3-cp314-cp314-manylinux_2_28_x86_64.whl (26.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

pynvvideocodec-2.2.3-cp313-cp313-win_arm64.whl (20.4 MB view details)

Uploaded CPython 3.13Windows ARM64

pynvvideocodec-2.2.3-cp313-cp313-win_amd64.whl (20.6 MB view details)

Uploaded CPython 3.13Windows x86-64

pynvvideocodec-2.2.3-cp313-cp313-manylinux_2_34_aarch64.whl (26.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

pynvvideocodec-2.2.3-cp313-cp313-manylinux_2_28_x86_64.whl (26.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pynvvideocodec-2.2.3-cp312-cp312-win_arm64.whl (20.4 MB view details)

Uploaded CPython 3.12Windows ARM64

pynvvideocodec-2.2.3-cp312-cp312-win_amd64.whl (20.6 MB view details)

Uploaded CPython 3.12Windows x86-64

pynvvideocodec-2.2.3-cp312-cp312-manylinux_2_28_x86_64.whl (26.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pynvvideocodec-2.2.3-cp312-cp312-manylinux_2_28_aarch64.whl (26.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

pynvvideocodec-2.2.3-cp311-cp311-win_arm64.whl (20.4 MB view details)

Uploaded CPython 3.11Windows ARM64

pynvvideocodec-2.2.3-cp311-cp311-win_amd64.whl (20.6 MB view details)

Uploaded CPython 3.11Windows x86-64

pynvvideocodec-2.2.3-cp311-cp311-manylinux_2_28_x86_64.whl (26.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pynvvideocodec-2.2.3-cp311-cp311-manylinux_2_28_aarch64.whl (26.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

pynvvideocodec-2.2.3-cp310-cp310-win_amd64.whl (20.6 MB view details)

Uploaded CPython 3.10Windows x86-64

pynvvideocodec-2.2.3-cp310-cp310-manylinux_2_28_x86_64.whl (26.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pynvvideocodec-2.2.3-cp310-cp310-manylinux_2_28_aarch64.whl (26.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 3d45624af9cc705fecf3cd678d6dd28b0e750162563d869bccd557cb591ca286
MD5 a4b386cc6520b60f24336791ca980225
BLAKE2b-256 ee180145c6a28c1541b04d45b62954e1f77b03709d26cb8a6cd4fe0dfb20c271

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 223271328633fa256eb30903008ab7bccf6fccfa51647a5755e0df486fecdd25
MD5 aa5783855021ea2142a6e5dc74210267
BLAKE2b-256 7b9d3aa82e8df0b3d958d9f77212b3b318ba4f06b03104f3c037b31d7e01bc7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 c124c73132b82383347d05c526de1403adea79c217381a20d1a5af9a6cf1b79e
MD5 b8f981aaff6cd75930083bb90e688bd7
BLAKE2b-256 9de2191eba977cbfe7ab63a6a9180a45f883f404ec0b36d17604da561655d2a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ffa03cedc4128456727fd5d1cf5a91fa747cda6cf6544d1b603b1b9d84d00eae
MD5 c9c031739b822f4b38f8d9c91b11d2c0
BLAKE2b-256 48f8bf41ea1d36609b82deaaaa1206b3858eedda8145c5c188bfd3b75cab4611

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 b962a1ac8dfb4b3c129783f7f46a3585b1f931a36032d4e5525d446f8ecd485e
MD5 2766c3ccd3a000f8227142c14169850e
BLAKE2b-256 3ccd609feb8a388cfc616f5d36f360c1f917dc332185a998829c4c7252903225

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 48c5dd9f4cd23098079c629c0446702c8b3a148dff6f8f851d66844743a8128b
MD5 562a2296a12b6cb01124e7e4e628d00b
BLAKE2b-256 d15acf5795e73dc21874fea3c9be59cc69a7384bcb526f48268055ae814a0e9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 73ef5aa2ee95f795758bf08638626e972a75dd4b70e3aa7e92d128a096565062
MD5 02aa6fd9e01ac049c18afed0e840e494
BLAKE2b-256 49e84c28092aa1ac2ce5ac75ef6632e6394a4d75ed3e2be364a25d8213b877a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 84baf32244ee9e3b047cd19671536587c3e54abab9dddfc7e3ec4d413c1704b1
MD5 8f1e7d0548b1b4cc91036c23e71b2d60
BLAKE2b-256 a72034bb7453672e6cb72c125d98c50c764981eb0813c825588aec9d9639f823

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 871fb41bfe275db3cfa645b1ddb5bf447bea49d0265d487e821f63d240caccca
MD5 9aa30411161878e804c91799d567f81e
BLAKE2b-256 6fedf4e5ec422454b8658cd270ff9df22b47a1da4fb2c42825aac2947722baf5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a535d5acededa18602cfc5898be7e906099e34419e91448e348f18bdf6f11329
MD5 c310a1b7394932d75bb0250d5feb0cc7
BLAKE2b-256 e29abdbc41120281a4bd6728a348e088eeca661dd4bb30d9fa0555374ec426e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 126224753a41655c72c1576cb23a835cb853a1a3c3568d78360ff07d24627b42
MD5 f5d38df360296750fa05f3cdd11f2d39
BLAKE2b-256 60a9e4b692f63f7e4085838e7d444b7e5d4a01c6e43843abeff0e31e27ebaf81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b9bb2b4a007965672a9fd02d70c3eba75eed23bd77c6ebef0c8ffbfcf506c0fe
MD5 431fc33a3392b25b76f78c627692225d
BLAKE2b-256 38bc658935efcb581a77d3a8b1f349ea2f8aa87b278616eabbb7e05196543043

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 2b8a3312f5938be960db4d0447845131d97a09f224405f933d74d588864e2d26
MD5 ec8a9180e046678687feca48435172c4
BLAKE2b-256 ccc7985353956f494a3b223efc26bfa1c7711c04677ed5cd616e452f5d99716a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cc1a1eaaed591f98a1e96bb5d28caeb5f47157682c3c8981316dc44450529015
MD5 3a11cc15ad0c66b4886bfcc13b8a5f5b
BLAKE2b-256 7479267bd233b93812b34afb10d322652faa3fcbaefa6c420d09178c8a4a4d24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eef8954b28f7d43b3c6e65eceac488c28ba3ca511366ad8d260885303cf126d2
MD5 f99840a7f830e726ae5f7084ec27c775
BLAKE2b-256 11bf1c144a2ccd0dc5607a0d4e9bae0f49dda0dd11d5ca5c7289b48fed991e21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0301be2bdf921fb6456a1f6087b7364f65501e895a2cb3bf7d73b8fe4ef5940b
MD5 83459b9fed48036c663e802cf9bbe8c6
BLAKE2b-256 e8b4d8a2695b108bf9dc87ac2070aa4e1579b607829a7f14f76175ca8cb6ecf8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5e862f2f56294fee116cee438899bdd490d932f575761c6b1632fd5e4f562405
MD5 6880bbe17790af8f5aaf7afe7e8ee6fa
BLAKE2b-256 2c13083e92f5d460e3b4f26092090b83688b4f7838b4c963ec35c2f4efbcb22b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6d401816b515e19fd5b3fe39adcaf63e1462fd8d13c0443ed0c52fb40ecacbb0
MD5 8af62950563c76db44fc896c671f1b2e
BLAKE2b-256 dfb03cb1ea72d9f2d3678190d5365bde1ee4f32e59a290adfc1f8ade94e06efe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.3-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 92555b2af82459827f0c9142f79c4fd197a72c2eebf8aef09fa3370c8ba6fbfb
MD5 d3a581d8b9439697c34c71ce5fa55284
BLAKE2b-256 0df706628002d2058b978e0f81fe3d6a439540fdb9ae8d223e52dcd720b3e396

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.2.3 This release

19 files

2.2.2

19 files

2.2.1

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