Python 中的硬件加速视频处理变得更加便捷。 PyNvVideoCodec 是一个基于 NVIDIA Python 的库,专为 GPU 加速的视频编码、解码和转码而设计。该库直接构建于低层级的 NVIDIA 视频编解码器 SDK 之上,轻量高效,采用麻省理工学院开源许可,可通过 pip 轻松安装。其性能接近原生 SDK,使用简洁高效。
PyNvVideoCodec 2.0 是一项重要升级,使开发者、研究人员和工程师能够使用熟悉且灵活的 Python 语言构建高性能的视频处理工作流。
无论您是在进行视频分析、AI 预处理、媒体转码还是实时流媒体传输,PyNvVideoCodec 2.0 都能兼顾 C++ 的运行速度与 Python 的使用便捷性,同时带来更丰富的功能、更出色的性能以及更广泛的编解码器支持。继续阅读以了解详细信息。


PyNvVideoCodec 2.0 有哪些新功能?
PyNvVideoCodec 2.0 版本带来了多项强大功能,致力于优化 AI、广播、多媒体及流媒体应用中的视频工作流程,显著提升了在解码、编码和转码方面的性能与功能。
解码增强功能
PyNvVideoCodec 2.0 新增的解码增强功能包含以下内容:
- 帧采样和查找:灵活的帧检索 – 顺序、随机、定期、批量、切片,甚至是目标帧速率。
- 解码器缓存:非常适合短片段,无需完全重新初始化即可重复使用解码器。
- 线程解码器:通过在后台线程中解码实现零延迟。
- 基于缓冲区的解码:直接从内存缓冲区处理视频,这对于流式传输用例至关重要
- 低延迟解码:支持无 B 帧序列的零延迟解码。
- SEI 提取:提取 SEI 消息,允许访问 HDR 元数据、时间码和自定义用户数据。
- 流式元数据:轻松检索关键帧索引、分辨率、位深度等。
- 优化 GIL 处理:通过更好地处理 C++ 层中的全局解释器锁定 (GIL) ,提高多线程性能。
- 多 GPU 解码:跨 GPU 扩展工作负载。
- 扩展编解码器支持:H.264、HEVC、AV1、VP8、VP9、VC1、MPEG4/ 2/ 1。
- 4:2:2 解码:解码 NV16、P210 和 P216 格式的高保真 4:2:2 H264 和 HEVC 内容。请注意,NVIDIA Blackwell 架构及之后均支持此功能。
- 灵活的输出格式:解码为各种输出格式,包括 NV12、YUV420、YUV444、NV16、P010、P016 和 RGB24 (交错和平面) 。
编码增强功能
PyNvVideoCodec 2.0 新增的编码增强功能包含以下内容:
- 实时编码器重新配置:即时更新编码设置,无需更改。
- SEI 插入:插入 SEI 消息。
- 多 GPU 编码:跨多个 GPU 分发编码。
- 4:2:2 编码:在 H.264/ HEVC 中创建具有广播级质量的 4:2:2 流。请注意,NVIDIA Blackwell 架构及之后均支持此功能。
- 支持扩展输入格式:NV12、YV12、IYUV、YUV444、YUV420_10BIT、YUV444_10BIT、NV16、P210、ARGB、ABGR、ARGB10 和 ABGR10。
转码增强功能
PyNvVideoCodec 2.0 新增了多项转码增强功能,具体包括以下内容:
- 基于片段的转码:使用时间范围对视频片段进行转码,并针对基于深度学习的视频训练工作流程进行优化。
易于安装和定制
使用以下代码安装 PyNvVideoCodec,安装步骤与之前版本保持一致。
pip install PyNvVideoCodec
如需获取完整的源代码并进行自定义(例如启用 NVTX 分析),请从 NVIDIA NGC 下载并安装。
pip install PyNvVideoCodec.zip
如需调整内部结构或从源代码构建,请使用以下代码:
unzip PyNvVideoCodec.zip
cd PyNvVideoCodec
pip install .
开始使用 PyNvVideoCodec 2.0
PyNvVideoCodec 2.0 为 Python 开发者提供了简便、灵活且功能强大的 NVIDIA Video Codec SDK 性能支持。
为帮助您快速上手,示例 Python 应用程序和完整的 PyNvVideoCodec 文档均附带在 PyPI 和 NGC 包中。从简单的解码与重新编码脚本,到基于分段的转码流程,这些示例旨在无缝集成到您的实际工作流中。
若要以极快速度启动新一代视频应用的开发,请访问 PyPI 或 NVIDIA NGC。