Skip to main content

pynvvideocodec (PyNvVideoCodec) is NVIDIA's Python library for hardware-accelerated video encode/decode on NVIDIA GPUs.

Project description

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.

This release introduces several new features and enhancements designed to optimize video processing workflows in AI and multimedia applications.

Release Notes (2.0.4)

  • Fixed wheel packaging by removing stale FFmpeg 4.4 libraries.
  • Upgraded bundled FFmpeg from 7.0.2 to 8.1.1.

Features (2.0 and above)

Current PyNvVideoCodec version 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.
  • 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.

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

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.

Project details


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.0.4-cp314-cp314-win_amd64.whl (25.7 MB view details)

Uploaded CPython 3.14Windows x86-64

pynvvideocodec-2.0.4-cp314-cp314-manylinux_2_34_aarch64.whl (35.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

pynvvideocodec-2.0.4-cp314-cp314-manylinux_2_28_x86_64.whl (43.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

pynvvideocodec-2.0.4-cp313-cp313-win_amd64.whl (25.7 MB view details)

Uploaded CPython 3.13Windows x86-64

pynvvideocodec-2.0.4-cp313-cp313-manylinux_2_34_aarch64.whl (35.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

pynvvideocodec-2.0.4-cp313-cp313-manylinux_2_28_x86_64.whl (43.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pynvvideocodec-2.0.4-cp312-cp312-win_amd64.whl (25.7 MB view details)

Uploaded CPython 3.12Windows x86-64

pynvvideocodec-2.0.4-cp312-cp312-manylinux_2_34_aarch64.whl (35.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

pynvvideocodec-2.0.4-cp312-cp312-manylinux_2_28_x86_64.whl (43.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pynvvideocodec-2.0.4-cp311-cp311-win_amd64.whl (25.7 MB view details)

Uploaded CPython 3.11Windows x86-64

pynvvideocodec-2.0.4-cp311-cp311-manylinux_2_34_aarch64.whl (35.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64

pynvvideocodec-2.0.4-cp311-cp311-manylinux_2_28_x86_64.whl (43.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pynvvideocodec-2.0.4-cp310-cp310-win_amd64.whl (25.7 MB view details)

Uploaded CPython 3.10Windows x86-64

pynvvideocodec-2.0.4-cp310-cp310-manylinux_2_34_aarch64.whl (35.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ ARM64

pynvvideocodec-2.0.4-cp310-cp310-manylinux_2_28_x86_64.whl (43.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.0.4-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 fbe730967d5402ffca520b12fa21725cbd22a6d2c9fae882ea1d95085a400fd9
MD5 3e5a8bd25e2d704709321650699bdbaf
BLAKE2b-256 f19aff638f3203b3e49718760a68e7f573747d3d814b817d949501243405c9d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.0.4-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 834fdbef7f3fc79285b5c2a88d1f1f7cd13543a9a7f2a2786141b181d1daaac9
MD5 de3251289758d494cb4a02f39885fb66
BLAKE2b-256 bede27eedeaa3ee5ec3dc2e4b1a7ac2b3d15ebb04cbfa768ca03d159a8328612

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.0.4-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d9ec06f47bca7b20a6e8234afaf596699c57a477be292613d676802e7e808ed2
MD5 b33fd3371ee8180cf8ac4f66b94a5af6
BLAKE2b-256 a7ce3062bf51bc0d98a344b9ed229a40535f6f1d309fc9ffaf34719b67ed3e21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.0.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8e704a2b553a35cc2de10543a232e7feddc473f3e5478996595236e3194efc5d
MD5 3ef33d145f5a22ecbeec6b0b049633c3
BLAKE2b-256 498e8c08bbffc9021db762b6ac103ce544db4e517f9816118a35db9f0c7d2a9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.0.4-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 51724c6a0e3623c092cccdf93c8b09cced6881f3d0c76653f6ffbec0371f29cd
MD5 8f33f64ad869590d16708ad9b680e9ae
BLAKE2b-256 3d2833d2a4d69b48823801c0b02b1bfbeac04cd9d429ee698d248e7ba946c516

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.0.4-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fcb06ef6ef24ee33b8f34950696a4e01636f2d8cdb96c407cd692931d049ac3d
MD5 8372869175f648d5232b934dfc585125
BLAKE2b-256 46d68475720d4f0f8fc9e852e0092b308643b71f24d9495ba3bd03c38b16c28d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.0.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 46e2adb82dc6ac333d3535cc76e4e25c7e8d80dd272b1aba0c28702b861d5261
MD5 d756bb6baee2fba6b8d1724d143259a3
BLAKE2b-256 7650eb1571ab1cee8ebb8a7bdfc355078beebe4b2bb2e5c6ad5d0e18ab8585db

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.0.4-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.0.4-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 a0daa28b09705806c8c6b26326df217c45e60c0a12a673ea3ea6ee5e2e7193b0
MD5 97607f296f921389899693351084af72
BLAKE2b-256 42807b13c12fd5f3243b01190130ce098a44ddf62e030e6ed712911cbfe40311

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.0.4-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b59cec7a1a3f78fad13fead78cad8b6d9686827f9ff4477080245457675a01d0
MD5 802fb83ed297b6abc5aeba7c313f00f7
BLAKE2b-256 ca4998da271686e00676f41b1197ba5431ddc341b96d8efb68ea9d68e2b0d870

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.0.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fc299a14e61832850be91f8441669ada6fc270903ad1c50acde8e9353590fd3a
MD5 70808e7dcdbb9d967ad557f291b92d51
BLAKE2b-256 ccdfc5b516bb16c42c312d3564999f25487607ed105f656ef7fbeb6b13ff3c6e

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.0.4-cp311-cp311-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.0.4-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 f809fb18929ac2af042835f10c7679b1c86db9817776f22bc7467907c5c3d918
MD5 fb64d9e17cdf182ac6413e58698da5b4
BLAKE2b-256 a9aadd826d41581aa6b11a4c922752a89a0dfbfe5f9095de11f8bb10bde46c1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.0.4-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bd3779ff73ad703393c0a19c3650f269ca25e71902c24efa0719ed4a58cd9390
MD5 c9a0f58bb204f84c75eb6e48096b6451
BLAKE2b-256 2e868766b11b0884fe9c0530870e99c68af1ce68568ebe0652b636caaa9ea50a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.0.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f678e5a6903498f291cffaba5d47b023c67bf18172049186044c4466492ad443
MD5 03d6fe1fd1634d70e38f497e609c2dd8
BLAKE2b-256 72bfe181180f9e9a60dac64640f8eeaf5635184c6aa11663f7855339c440f3a5

See more details on using hashes here.

File details

Details for the file pynvvideocodec-2.0.4-cp310-cp310-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pynvvideocodec-2.0.4-cp310-cp310-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 8d6d3d63317c452bdd18167f622abb392bd982ae65293673a169e3f253c1d1ed
MD5 b6342baba048b2969d169200ccb53f24
BLAKE2b-256 92d7a57b8672ea2fb5edfb53a61b2478859d52c593d40c1e061b558c31a743c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pynvvideocodec-2.0.4-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7af1d9ab37f7415168c23be00539094e7b21774661af2a0a2b9bb574670bc75e
MD5 5c908076c16331c764eb2ad3e12210bd
BLAKE2b-256 8da9b80e3b2cb324f4fa684f66748f1fa1f14e8e1687309408cf3e1e8c1c2a81

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page