基于rv1126 rkmeida 一路多出 原理

发布时间 2023-12-21 19:53:30作者: _promise

基于rv1126 rkmeida 一路多出的坑

首先说要的是介绍一下rkmedia 相关内容

​ 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(视频一入四出)

视频输入(VideoInput,简称VI)用于读取Camera数据。该模块是对标准V4L2接口的封装,依赖LinuxV4L2驱动架构。ISP/ISPP/VICAP驱动通过V4L2架构向用户层提供文件节(如:/dev/video0),VI通过操作文件节点实现参数配置视频帧的读取等操作。

使用VP完成视频从rkispp_input_image节点对应video输入,使用VI完成视频从rkispp_m_bypass、rkispp_scale0、rkispp_scale1、rkispp_scale2节点对应video输出,即可实现视频一入四出。

image

image

通道绑定

/*
 *                    -> VI2     --> venc1
 * VI0 -> VP0 -- ISPP -> VI3     --> venc2    -->out
 *                    -> VI4     --> venc3
 *                    -> VI5     --> venc4
 *
 * VI0 是 能够采集图像的vdieo  /dev/video0 也是可以的 但必须进行设置  先kill iqserver
 *  在初始化 VI0 通道的时候  加上vi_chn_attr.enBufType = VI_CHN_BUF_TYPE_MMAP;
 *  当然 rkispp_scal0 也是可以的  也就是你当前摄像头所连接的 ispp0 模块
 * VP0 是 rkispp_input_image
 * 最后利用ispp 模块进行 缩放
 * 在将其绑定到 编码通道上 

在使用过程中我们需要将ispp1 模块 在设备树给打开

&rkispp_vir2 {
         status = "okay";
};

注意: 因为你的摄像头链路已经把 ispp0 已经用了 当你采集的时候就不能在用 ispp0 去进行 扩展了 大概意思就是 把 ispp0 的数据给 ispp1 让他去进行输出 四路数据 不知道这么理解正确不 在所有的博客是没有人用ispp0 模块进行绑定通道的。

下来就是配置 ispp1 模块相关的 media 子系统 因为你在设备树 设置的时候仅仅打开这个通道 没有进行一个数据通道绑定 所有他相关的参数都不知道。 我的是media4 注意看你的 media-ctl -d /dev/media* 头部有相关信息

Media device information
------------------------
driver          rkispp
model           rkispp1
serial
bus info
hw revision     0x0
driver version  4.19.111

media-ctl -d /dev/media4 --set-v4l2  '"rkispp-subdev":2[fmt:YUYV8_2X8/1920x1080]'
media-ctl -d /dev/media4 --set-v4l2  '"rkispp-subdev":2[fmt:YUYV8_2X8/1920x1080]'
media-ctl -d /dev/media4 -l '"rkispp_input_image":0->"rkispp-subdev":0[1]'

下来就这么这么多 根据自己产品进行一个 使用吧 相关代码可以参考这个博客。

RV1126学习笔记 一入四出rtsp网络视频流显示-CSDN博客