视频编解码——基于mpp库
1. MPP 介绍
瑞芯微提供的媒体处理软件平台(Media Process Platform,简称MPP)是适用于瑞芯微芯片系列的通用媒体处理软件平台。该平台对应用软件屏蔽了芯片相关的复杂底层处理, 其目的是为了屏蔽不同芯片的差异,为使用者提供统一的视频媒体处理接口(Media Process Interface,缩写MPI)。MPP提供的功能包括:
-
视频解码
H.265 / H.264 / H.263 / VP9 / VP8 / MPEG-4 / MPEG-2 / MPEG-1 / VC1 / MJPEG / AV1 -
视频编码
H.265 / H.264 / VP8 / MJPEG -
视频处理
视频拷贝,缩放,色彩空间转换,场视频解交织(Deinterlace)
以下为RK官方MPP文档的GitHub链接,包含了中文/英文的MPP开发指南:
https://github.com/rockchip-linux/mpp/tree/develop/doc
2. 获取和编译RKMPP库
2.1. 测试环境
- RK官方MPP库地址:https://github.com/rockchip-linux/mpp
2.2. 安装相关依赖工具
sudo apt update
sudo apt install -y git cmake
2.3. 拉取RK官方MPP仓库
git clone https://github.com/rockchip-linux/mpp.git
2.4. 编译
-
进入aarch64相应的编译路径:
cd mpp/build/linux/aarch64/
-
修改交叉编译配置文件,指定编译器gcc和g++(一般默认就好):
vim arm.linux.cross.cmake
-
运行bash脚本后编译(编译过程大概需要4分钟):
./make-Makefiles.bash
make -
编译结束后,你将会发现目录下多了很多文件。
- 进入
test
目录,目录下便是编译生成的一些测试程序。
3. 视频解码
解码器demo为mpi_dec_test
系列程序,包括使用decode_put_packet
和decode_get_frame
接口的单线程mpi_dec_test
、多线程的mpi_dec_mt_test
以及多实例的mpi_dec_multi_test
。
3.1. 测试环境
- 测试操作系统:Debian 12
3.2. mpi_dec_test
的命令参数
3.2.1. 终端查看mpi_dec_test
的命令参数
-
打开两个终端,其中一个终端输入以下命令,来监控日志输出:
sudo tail -f /var/log/syslog
-
另一个终端执行
mpi_dec_test
测试程序:mpi_dec_test
-
执行完测试程序后,会在日志中打印如下帮助文档: