1.RKMedia介绍
RV1126_RV1109_LINUX_SDK_V2.2.5.1_20231011/docs/RV1126_RV1109/Multimedia/Rockchip_Developer_Guide_Linux_RKMedia_CN.pdf
音视频开发的文档
RKMedia 提供了一种媒体处理方案,可支持应用软件快速开发。RKMedia 在各模块基础 API 上做进一步封装,简
化了应用开发难度。
VI(输入视频捕获)
VENC(H.265/H.264/JPEG/MJPEG 编码)
VDEC(H.265/H.264/JPEG、MJPEG 解码)
VO(视频输出显示)
RGA 视频处理(包括旋转、缩放、裁剪)
AI(音频采集)
AO(音频输出)
AENC(音频编码)
ADEC(音频解码)
MD(移动侦测)
OD(遮挡侦测)
VMIX(视频合成)
MUXER(视频封装)
VP(视频一入四出)
YUV 介绍:
⚫ "Y" 表示明亮度(Luminance、Luma),用于指定该像素感知的明亮程度。 ⚫ "U" 和 "V" 则是色度、浓度(Chrominance、Chroma),作用是描述影像色彩、饱和度
摄像头 GC2053
摄像头支持的图像格式:
视频编码方式:
第一种: 使用开源 x264 库
第二种: 使用 ffmepg 移植库、学习接口 做开发
视频相关的参数:
分辨率指的是图像的长宽像素大小,分辨率也有 720、1080、2K、4K 的说法
1080 = 19201080
4k = 3840*2160
帧率:一秒的视频帧数,单位是 fps 码率:码率是 1 秒的数据量大小
H264 的压缩工作原理是比较典型的,它的压缩算法加入了运动补偿、运动补充等概念。
GOP 指的是一组完整的视频帧,如 gop 设置为 25,那么编码器会让每 25 帧的第一帧必定为 I 帧 。如果帧率也是 25 帧,那每秒的第一帧就必定是 I 帧。
2.视频编码 API
1》RK_MPI_SYS_Init
2》RK_MPI_VI_SetChnAttr 设置 VI 通道属性
3》RK_MPI_VI_EnableChn:启用 VI 通道
4》RK_MPI_VENC_CreateChn: 创建 VENC 通道
5》RK_MPI_SYS_RegisterOutCb 注册输出的回调函数
6》RK_MPI_SYS_Bind
操作 MEDIA_BUFFER
用于自己编程使用的工程 --- test
如果想要在 vscode 中能够函数跳转
相关问题
(1)ISP(摄像头的驱动)是怎么设置的
调用现成的函数接口
(2)视频编码的程序流程是怎样的
①系统初始化
②设置视频采集通道
视频采集通道里的相关问题
用的哪一个摄像头采用的数据,采集的画面是怎样的格式,采集的分辨率有多大,帧缓存是多少,缓存格式
③使能采集通道
④创建编码(VENC)通道
创建编码通道的相关问题
编码的格式是哪一种,编码图像是哪一种,编码前后分辨率分别多大,
⑤设置码率控制器
设置码率控制器相关问题
选用的哪一种波特率编码,
⑥设置回调函数
当有一帧数据时就会触发回调函数并且将编码结果写入到文件内。
⑦绑定VI和VENC
(3)为什么要对视频编码?
答案:1920*1080*1.5*25 --- 74M
120 分钟 521G
因此对视频做编码---压缩非常节省空间
视频编码格式: H264 H265
H264优点:但是播放视频解码过程很快,并且适用范围广
H264缺点:压缩速度较慢,压缩后文件较大,
H265优点:压缩、编码速度快,压缩后的文件小
H265缺点:播放视频解码过程占用较大的系统资源,适用范围小