Camera | 3.瑞芯微平台MIPI摄像头常用调试命令
0赞前面2篇我们讲解了camera的一些基础概念和知识。
本文主要讲述在瑞芯微平台上摄像头开发常用的调试命令。
0、环境
soc : rk3568
board: EVB1-DDR4-V10
软 件:Android 11
Linux:4.19.232
Camera:ov13850
1. v4l2-utils工具包
v4l-utils工具是由Linux维护的V4L2开发工具包。
它提供了一套用于配置V4L2子设备属性的V4L2和媒体框架相关工具,测试V4L2设备,并提供开发库,如libv4l2等等。
v4l-utils工具包主要包含两个常用工具,分别是media-ctl、v4l2-ctl
瑞芯微的SDK在Buildroot固件中,已经编译好了v4l2-utils软件包里面的工具(Android通常默认支持)。
ubuntu系统安装方法:
peng@ubuntu:~$ sudo apt install v4l-utils
2. media-ctl
media-ctl是v4l2-utils包中的一个工具,主要用来查看、配置Media Framework的各Entity的信息,如格式、裁剪、链接使能等。
V4l2-ctl 工具则是针对/dev/video0,/dev/video1 等 video设备,它在 video 设备上进行 set_fmt,reqbuf(申请buf),qbuf(送buf回队列),dqbuf(从队列取出buf),stream_on,stream_off 等一系列操作。
n为4的倍数(0,1,2,3…)
/dev/videon+0:视频输出 SP主通道
/dev/videon+1:视频输出 MP自身通道
/dev/videon+2:3A统计
/dev/videon+3:3A参数设置
1)找到video设备
拓扑结构中有多个的Entity,一些是sub device,一些是video device。前者对应的设备节点是/dev/v4l-subdev,后者对应的是/dev/video。多个的video device中,最常关注的是哪个设备可以输出图像。
$ media-ctl -d /dev/media0 -e "rkisp_selfpath"
/dev/video1
$ media-ctl -d /dev/media0 -e "rkisp_mainpath"
/dev/video0
上面两个命令分别显示出/dev/media0这个链路中,RKISP的SP及MP节点的设备路径。RKISP有两个视频输出设备,它们都能输出图像。
2)显示拓扑结构
使用以下命令可以显示拓扑结构:
$ media-ctl -p -d /dev/media0
主要关注的是有没有找到Sensor的Entity。如果没有找到Sensor的Entity,说明Sensor注册有问题,请按FAQ文档排查。
例如,开发板上接上ov13850摄像头后可以看到如下的输出:
从entity70信息中可以看到:
该Entity完整的名称是:m00_b_ov13850 4-0010
它是一个V4L2 subdev(Sub-Device) Sensor
它对应的节点是/dev/v4l-subdev3,应用程序(如v4l2-ctl)可以打开它,并进行配置
它仅有一个输出(Source)节点,记为pad0
它的输出格式是[fmt:SBGGR10/4224x3136],其中SBGGR10是一种mbus-code的简称
它的Source pad0 链接到"rockchip-csi2-dphy0"的pad0,并且当前的状态是 ENABLED。
拓扑结构图如下:【后面文章会详细讲解该结构图,请收藏本系列文章】
3)修改Entity的format、size
举例一,ov3850摄像头支持多个分辨率的输出,默认为1920x1080。现将输出分辨率改为640x480:
3. v4l2-ctl
v4l2-ctl的帮助信息查看:
1)列出所有设备
2)指定设备的预览支持格式
3)获取指定设备的所有信息
4) 显示摄像头参数
5)增加曝光exposure
exposure值区间为: 4-3324 命令实例:
v4l2-ctl -d /dev/video0 --set-ctrl exposure=3324
6)增加图片亮度analogue_gain
7)使用v4l2-ctl抓帧
8)测试显示信息test_pattern
4. 显示图片
上一节,抓取的图片、视频要可以拷贝到ubuntu中借助借助工具ffplay查看。
1)ffplay
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。
它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
ffplay是FFmpeg提供的一个极为简单的音视频媒体播放器(由ffmpeg库和SDL库开发),可以用于音视频播放、可视化分析 ,提供音视频显示和播放相关的图像信息、音频的波形等信息,也可以用作FFmpeg API的测试工具使用。
由于是基于FFmpeg开发所以ffmpeg支持的视音频格式它基本上都支持,不过ffplay不是图形化界面需要通过CMD命令窗口来操作。
2)官网网站
http://www.ffmpeg.org/ffplay.html
3)ffplay命令选项:
4)显示图片
文中各种mipi技术文档,后台回复关键字:mipi
掌握了这些命令,我们就可以调试摄像头了。
后面还会继续更新几篇Camera文章,
建议大家订阅本专题!
也可以后台留言,加一口君好友yikoupeng,
拉你进高质量技术交流群。
原文链接:https://mp.weixin.qq.com/s/aZdqMvA8CxopxE5RfLzw9Q
电子技术应用专栏作家 一口Linux