编码解码
大约 2 分钟
音视频编解码介绍
多媒体编解码框架
主流GPU厂商



硬解码特性
关于硬解码输出原始数据格式,cpu的一般都是yuv420p,gpu一般都是nv12,寒武纪,华为,英伟达都是这样,因为解码器支持的解码输出格式是有限的,不像cpu那么丰富,对gpu来说nv12比yuv420少一次的数据拷贝,对pcie带宽的压力小一些。这里需要使用负责视频像素格式转换和图像缩放的libyuv按需转换,libyuv是音视频链路中的“像素处理加速库”。
英伟达官方视频抽帧工具链
PyNvVideoCodec NVIDIA PyNvVideoCodec 提供了简洁的 API,方便 Python 在处理视频时利用视频编码和解码功能。PyNvVideoCodec 是一个库,它为 C++ API 提供了 Python 绑定,用于实现硬件加速的视频编码和解码。
国产化视频抽帧工具链
项目背景
- 对于N卡,目前已经拥有官方PyNvVideoCodec了,为什么还需要开发自己的抽帧工具?出于训练的效率要求,PyNvVideoCodec是单进程同步阻塞API,自研抽帧工具需要能够多线程解码,充分利用GPU并行计算的能力。
- 行车或泊车引擎需要调用C/C++接口的抽帧API进行视频数据处理。
- 除了NVIDIA 官方提供了PyNvVideoCodec工具链,其他国内厂商如寒武纪和华为等没有官方配套工具链。
项目特性
- 支持基于寒武纪GPU
- 支持基于华为GPU
- 支持基于英伟达GPU
- 支持基于英特尔GPU
项目特点
- 提供统一C API接口用于实现硬件加速的视频编码和解码。
- 基于C API进行二次封装,支持不同语言环境下的编解码加速需求。