Get Started with PyNvVideoCodec
PyNvVideoCodec is NVIDIA’s Python based video codec library that provides simple yet powerful Python APIs for hardware accelerated video encode and decode on NVIDIA GPUs.
PyNvVideoCodec is the successor of VPF (Video Processing Framework). It is distributed under MIT license and is officially supported by NVIDIA.
PyNvVideoCodec library internally uses core C/C++ video encode and decode APIs of Video Codec SDK and provides easy to use Python APIs on it. The library offers encode and decode performance close to Video Codec SDK.
PyNvVideoCodec library is distributed in two formats: binary distribution via PyPl and source code distribution via NVIDIA NGC. In both cases, it can be installed using a single pip install command.
The Python APIs provided by the library are easy to use. These APIs support popular data formats that are commonly understood by DL frameworks like PyTorch. This enables applications to seamlessly exchange data between DL frameworks and NVIDIA’s video encode/decode hardware accelerators.
The library contains Python samples which demonstrate the usage of APIs for decode, encode and transcode use cases. Additionally, these samples feature an example of how to exchange data between the PyNvVideoCodec APIs and popular DL frameworks such as PyTorch.
System Requirements
NVIDIA Drivers | NVIDIA Windows display driver - 531.61 or newer. |
Supported NVIDIA GPUs | GPU families - Turning, Ampere, Ada, and Hopper |
Supported Operating Systems | Windows and Linux |
PyNvVideoCodec Latest Version
Pip install from PyPl (recommended)
Ready to use Python WHLs of PyNvVideoCodec library for popular configurations are available on PyPl and can be installed by running the following command on shell prompt.
pip install pynvvideocodecDownload source on NGC and build
Package containing PyNvVideoCodec source code, its dependencies, Python sample applications and documents is available on NVIDIA NGC. To install PyNvVideoCodec library please download zip file containing the latest version of PyNvVideoCodec from the NVIDIA NGC catalog page (located in the file browser tab) onto your local machine. Then, open the shell prompt, go to the folder containing the zip file and execute the following command, replacing "PyNvVideoCodec.zip'' with the actual name of the downloaded zip file.
pip install PyNvVideoCodec.zip
Please use this method of installation in case you need any customizations in PyNvVideoCodec library. e.g. enabling NVTX markers for profiling, support for specific surface format etc.
Release Notes
This release of PyNvVideoCodec includes support for the following features:
Codecs: H.264, HEVC, AV1.
Surface formats: NV12 (8 bit), YUV 4:2:0 (10 bit), YUV 4:4:4 (8 and 10 bit).
Video container formats: MP4, AVI and MKV.
DLPack support to facilitate data exchange with popular DL frameworks like PyTorch and TensorRT.
CUDA Array Interface support to facilitate data exchange with NVIDIA's CV-CUDA library.
CUDA stream support for optimizing throughput.
Contains a collection of Python samples demonstrating API usage.
Python Samples
The library has a collection of Python samples that illustrate use of PyNNVideoCodec APIs for video decoding, encoding and transcoding use cases.
PyNvVideoCodec package containing sample applications and documents can be downloaded from
NVIDIA NGC.
Documentation
Key documents can be easily accessed from the PyNvVideoCodec package on NVIDIA NGC.
For your convenience, these documents are also accessible online at PyNvVideoCodec online documents.
Support
To provide feedback, request additional features, or report support issues, please contact us here or use the Video Codec Developer Forum.