瑞芯微(rockchip)芯片现在嵌入式行业使用的逐渐多了,本栏主要介绍rv1126/rv1109上的媒体框架 rkmedia的使用以及常遇到的问题。
希望可以给各位使用rkmedia的小伙伴一些帮助,同时也是自己工作的记录。
rkmedia的手册在sdk目录下/docs/RV1126_RV1109/Multimedia
rkmedia的代码在sdk目录下/external/rkmedia
rkmedia的demo在sdk目录下/external/rkmedia/examples(在手册的最后部分有介绍部分demo)
编译rkmedia:
1、在sdk目录下先执行source envsetup.sh 选择对应的配置
2、然后执行make rkmedia-dirclean make rkmedia-rebuild
3、生成的lib以及执行程序放在sdk目录下/buildroot/output/rockchip_rv1126_rv1109/oem/usr/lib or bin/
rkmedia log等级配置:
export RKMEDIA_LOG_LEVEL=DBG 打开DBG打印
export RKMEDIA_LOG_LEVEL=LOG_LEVEL_INFO 正常等级打印
rkmedia系统框架:
rkmedia常用模块分为六块:VI,VENC/VDEC,RGA,VO,AI/AO,AENC/ADEC
VI: 底层的实现是通过调用v4l2标准接口,主要是获取sensor或其他的视频输入
VO:底层是通过调用DRM接口实现,主要是用来显示画面
VENC/VDEC:使用的是rk平台自己开发的硬件编解码器mpp去实现(所有的rk平台的编解码都是有mpp编解码)
RGA:使用rk平台自己开发的2D硬件加速器接口去实现,主要做格式转换、缩放、旋转、图形绘制等
AI/AO:使用ALSA标准的接口去实现音频的录制以及播放
AENC/ADEC:音频编解码是rk自己使用的软件编码接口,以库文件的形式提供。
各个数据之间的传输是以绑定的形式来实现,具体绑定关系如下:
ps:MD和OD是移动侦测和遮挡侦测,这里不做详细介绍
附上一些框架应用开发的使用链接:
v4l2:linux v4l2摄像头应用层编程介绍 - 简书
DRM:DRM(Direct Rendering Manager)学习简介_何小龙的博客-CSDN博客_drm 何小龙
ALSA:Linux应用开发【第八章】ALSA应用开发_51CTO博客_linux 应用开发
本篇博客将作为本人RKMEDIA学习教程的目录汇总,后续我会以示例代码的形式和大家分享上述知识点的学习过程,并不断更新目录链接,敬请期待!
1、VI 视频输入
2、VO 视频输出
3、VENC/VDEC 视频编解码
4、RGA 图形处理
5、AI/AO 音频输入输出
6、AENC/ADEC 音频编解码