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

Uploaded CPython 3.14Windows ARM64

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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

pynvvideocodec-2.2.2-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.2-cp313-cp313-win_arm64.whl (19.5 MB view details)

Uploaded CPython 3.13Windows ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

pynvvideocodec-2.2.2-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.2-cp312-cp312-win_arm64.whl (19.5 MB view details)

Uploaded CPython 3.12Windows ARM64

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

Uploaded CPython 3.12Windows x86-64

pynvvideocodec-2.2.2-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.2-cp312-cp312-manylinux_2_28_aarch64.whl (26.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11Windows ARM64

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

Uploaded CPython 3.11Windows x86-64

pynvvideocodec-2.2.2-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.2-cp311-cp311-manylinux_2_28_aarch64.whl (26.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pynvvideocodec-2.2.2-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.2-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.2-cp314-cp314-win_arm64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 4551504cdcc7e042cada313a0045ceb93f461a7dd403ba492da6176c7039a010
MD5 d8e1baae8902f314196c7f540e168789
BLAKE2b-256 d39024b2e5ae3b20fe5f2ebf8d52802564dd9f3194b2eb118eb5a5fce270bf72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 eaa1e40aaa9237c940903970636762d8fde8fb331b804a752f19178e972b3d67
MD5 09c76568b55ff6e96d5328572ccef969
BLAKE2b-256 50ab527523284261ca0b05da81495f687109b0adc27774093ca7d6e56b472d4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 cfda25c98e65d1517222aa2be1494540acc134594dfb22a232a2f9a63d89a9ab
MD5 a6e7f776dff44006a42d552f212799dc
BLAKE2b-256 4a8d5562432ad794dcb76882b4026cf9a255a5ca867cdb50993459426e39619e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6815a9e4263ea076ca18c07665d3fe42b64bf71b24c3ec702727cd561af88080
MD5 36fadbcc6cd4d7319caf04d51d0b214d
BLAKE2b-256 6fab6748c9f3d0475f0ebd3bc0f159fc2849663a2a5a7a237140d2cd1d67816d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 3eef374c7fcf241a7043e37d8920234c28c2e32e2d6ca017726744caed2c9f48
MD5 baa786d95206220a4473a2069ae0d4f4
BLAKE2b-256 12e146c8289284890661030c93fe5cbd2bd2ed805e053a8ecb3f7d261992a267

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0cf694c91f21bdac0dc1053bdb909b879836040848300c9d968605415a038e96
MD5 a9ac79a25fa3e426987f5f447f5943d2
BLAKE2b-256 4335f655511672aa4dbd2f234d88c788b49b19666f2c017b49e2b0ea9b688e66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 4bf2f261bcc69577b8396d20bfdc9f6bc67adb5f5bec7ec1fdd698d8a0b0a805
MD5 9678364147bf1f46cf3da8fd16a94aea
BLAKE2b-256 9fa2a665bd7a4cfec8b71350d7f61ab0bab0a11462c0b63fafef300229ff27f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 92effa6f3cab0e64eec85cd448c4ecb2899f301a478cb344be285257ad44e009
MD5 d33a186e97ea106defa0da27205df2be
BLAKE2b-256 bab131f9a5296ef30e17ffafd87c1ad7bdc0a8b42ee8e6a61937ce2e0403b8b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 e8f7d8d858f4d0382ab04a4f6605d8890184a48e3654e7206bdd69cbc6279db8
MD5 09b2ae1cfe594ea70c3a04e1f73a3f55
BLAKE2b-256 02d862ece59fe176f3f2da57028b47657ac83cc7a31261c9c89f7d211ddd4cd0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ff4561f48d41ddd0e36e7da92b6f848da325ebf2960097bf62616633fbca6def
MD5 c2ca1d8526244edbfd03997d73097d91
BLAKE2b-256 70a6273217a5deedd79933e7e9b1897f3ad3e33466449dfa8be31db6ffb14f80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b29dd4ac5aefbe909b8d3d3e57e5a1e84aeea5c4c862116f90c0cd0193972cbb
MD5 89677052bb8e7317af302af8042d187e
BLAKE2b-256 2c53a1d91b359a5ddb44a2955dd6f6a0465f27223cd455821d9dabcac3847555

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c02ca70c1797cb02217c8366f2ebb28a35cf80c02a266ac640b68b189f4531d0
MD5 558a3b3b6fba619469f3e07706f8107b
BLAKE2b-256 7f72a4f67d23879887e7693fa6a63cf51f2d127e96fe3642d091cd464e9f5a1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 32bdb1ffa207a2751cbc78422eec5db4b76885df1cea7d60155251e692d6661e
MD5 1cb2eb8892cdc6e248034f78aaf1b100
BLAKE2b-256 4e0036183b88f2e6c1cb95cf4c5403da2dfe4d72ed9319f388213dfcb8ba2861

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3b3cb1d79f34c1734a1869c5ea109878ddc7702cc3d9caffa3f67d4e8af3d6c4
MD5 41e132c2228731075eb8be57a9e03139
BLAKE2b-256 d8ccaaf2c60b5db3d9c0092b10ec6f018c400926a135705ec5b003fb60a9f532

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f4dd80dd46636ee3b33f744e8acc592034251bdb837575a6804ee91a49ec8abf
MD5 e92b895d7e601a65a5ff621786b3c264
BLAKE2b-256 9a797b067eeedcb9c2edd99b90bb60c76c92d1de195602426b1f7807587167ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 213e824cf2b0a6d50f7016f0e87769072c0b06ea726d99be64767e60169e2639
MD5 edf761383304876c24ca2850f7212d55
BLAKE2b-256 8c80511b15d206f7465e24a330cc75556eb7a84cedbf4e0a8bd1c88bd4f066b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0e4fb401e4aafcc7d09b06461ef9182640ac3565a869fc0db6415692a44e1e20
MD5 2d327f7336203bb6ec24df8570284363
BLAKE2b-256 6544fb1d5e9b1e5f233f517d0559cf23cda4374cd1e228775445f93d190d6f94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5bed2e612acb93b9e628a3793456ffeaa3c7780ff00be5546c7b87270b85a009
MD5 17c83f4c19a6188e90d0aecd86fd5a02
BLAKE2b-256 3d8baa04d63c7b74a1c20a7a1e8de93949a2097af02dc08a7446cfe5ee2faf67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.2.2-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6c653a236bb61e98fd787601bfa8095150888a8e6cabf604306fa8ebbeb696dc
MD5 842f66ddde45e7fc52033c5684819b0b
BLAKE2b-256 fb3f15eedb920e5852161ea51939a72e5717d946e44226f9456a7bf95f68f46f

See more details on using hashes here.

Release history Release notifications | RSS feed

2.2.3

19 files

This release

2.2.2 This release

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