首页 > 编程知识 正文

entityutils,sim卡工具包

时间:2023-05-06 19:36:28 阅读:175124 作者:4742

4、v4l-utils工具包v4l-utils主要包括media-ctl、v4l2-ctl两种常用工具

4.1、安装对v4l-utils Android系统的默认支持

如何安装UBUNTU系统

如何安装$ apt-getinstallv 4L-utils buildroot系统

$ vim buildroot/configs/rockchip _ rk 1808 _ defconfig br2 _ package _ lib v4l _ utils=y 4.2,media-ctl工具media-ctl

配置拓扑中每个节点的格式、大小和链接

操作/dev/medio0节点

获取相机支持数据格式RK3568 Android11.0测试没有此选项

$ media-ctl --known-mbus-fmts可以查看设备链接的分析输出信息,并获得设备链接是否正常

$ media-CTL-d/dev/media0- p media 0设备信息

mediacontrollerapiversion 0.1.0 mediadeviceinformationdriverrkisp1//RKISP1是在media0加载rki SP1后创建的modelrkisp1serialialsp 1系列

ISP设备节点很多,主要关注entity1节点

请确认连接的DPHY设备编号正常

device topology-entity 13360 rki SP1-ISP-sub dev (4pads, 7 links ) type v4 L2 subdevsubtypeunknownflags0device nodename/dev/v4l-sub dev0pad 03360 sink [ fmt 3360 SRG GB 12 _ 1x 12/1920 x 12 ] 0 )/1920x1080 crop:(0) 0, 0 )/1920x1080(-) rkisp1_dmapath(:0 )-(rockchip-mipi-dphy-rx ) :1(Enabled ) pad 1: sink-(rki pi 1920 x 1080 field : none crop.bounds 3360 (0,0 )/1920x1080crop3360 ) 0, 0 )/1920 x 1080 (-rki SP1 _ self path (:0(enabled )-rkisp1_mainpath ) :0 (enabled )-rkisp1_rawpath ) ) - entity 2: rki SP1 _ main path (1pad, 1nk ) typenodesubtypev4lflags0device nodename/dev/video0pad 03360 sink-' rki SP1-ISP-sub dev ' 33602 [ enabled ]-entitite 1nk ) typenodesubtypev4lflags0device nodename/dev/video1pad 03360 sink-' rki SP1-ISP-sub dev ' 33602 [ enabled ]-entitite 1nk ) typenodesubtypev4lflags0device nodename/dev/video2pad 03360 sink-' rki SP1-ISP-sub dev ' 33602 [ enabled ]-enabled

type V4L flags 0 device node name /dev/video3 pad0: Source -> "rkisp1-isp-subdev":0 []- entity 6: rkisp1-statistics (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video4 pad0: Sink <- "rkisp1-isp-subdev":3 [ENABLED]- entity 7: rkisp1-input-params (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video5 pad0: Source -> "rkisp1-isp-subdev":1 [ENABLED]

DPHY设备节点

- entity 8: rockchip-mipi-dphy-rx (2 pads, 2 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev1 pad0: Sink [fmt:SRGGB12_1X12/1920x1080 field:none] <- "m00_b_imx327 2-001a":0 [ENABLED] pad1: Source [fmt:SRGGB12_1X12/1920x1080 field:none] -> "rkisp1-isp-subdev":0 [ENABLED]

Sensor设备节点

- entity 9: m00_b_imx327 2-001a (1 pad, 1 link) type V4L2 subdev subtype Sensor flags 0 device node name /dev/v4l-subdev2 pad0: Source [fmt:SRGGB12_1X12/1920x1080@10000/300000 field:none] -> "rockchip-mipi-dphy-rx":0 [ENABLED]

参数解析:

​ entity 节点

​ pad 连接其他entity数量

​ Source

​ Sink

​ link 连线数量

开关Camera /* 关闭摄像头 */$ media-ctl -l '"m00_b_imx327":0->"rockchip-mipi-dphy-rx":0[0]'/* 开启摄像头 */$ media-ctl -l '"m00_b_imx327":0->"rockchip-mipi-dphy-rx":0[1]'

参数解析:

1、media-ctl -l ‘“entity name”:pad->“entity name”:pad[Status]’

2、整个 link 需要用单引号, 因为有特殊字符如 > [ ]

3、Entity name 需要用双引号, 因为中间有空格

4、Status 用 0 或 1 表示 Active 或 In-Active, 需要用中括号

多摄像头时,只能开启一个

设置Sensor信息 //设置sensor输出分辨率$ media-ctl -d /dev/media0 --set-v4l2 '"m00_b_imx327 2-001a":0[fmt:SRGGB12_1X12/1920x1080@10000/300000]'//设置isp的接收(从mipi dphy)格式及大小,格式要求与sensor输出相同$ media-ctl -d /dev/media0 --set-v4l2 '"rkisp1-isp-subdev":0[fmt:SRGGB12_1X12/1920x1080@10000/300000]'//isp 接收的大小可以 crop(裁剪)(缩小分辨率)$ media-ctl -d /dev/media0 --set-v4l2 '"rkisp1-isp-subdev":0[crop:(0,0)/1920x1080@10000/300000]'//设置 isp 输出的, YUV 格式只能是 YUYV2X8$ media-ctl -d /dev/media0 --set-v4l2 '"rkisp1-isp-subdev":2[fmt:SRGGB12_1X12/1920x1080@10000/300000]'//isp 输出也有 crop 功能(缩小分辨率)$ media-ctl -d /dev/media0 --set-v4l2 '"rkisp1-isp-subdev":2[crop:(0,0)/1920x1080@10000/300000]'$ media-ctl -d /dev/media0 --set-v4l2 '"ov5695 7-0036":0[fmt:SBGGR10_1X10/2592x1944]'$ media-ctl -d /dev/media0 --set-v4l2 '"rkisp1-isp-subdev":0[fmt:SBGGR10_1X10/2592x1944]'$ media-ctl -d /dev/media0 --set-v4l2 '"rkisp1-isp-subdev":0[crop:(0,0)/2592x1944]'$ media-ctl -d /dev/media0 --set-v4l2 '"rkisp1-isp-subdev":2[fmt:YUYV8_2X8/2592x1944]'$ media-ctl -d /dev/media0 --set-v4l2 '"rkisp1-isp-subdev":2[crop:(0,0)/2592x1944]' 4.3、v4l2-ctl工具

v4l2-ctl工具的作用

配置 v4l2 controls, 可抓帧, 设置 cif、isp、sensor 参数

操作/dev/video0节点

剪裁偏移图像 $ v4l2-ctl -d /dev/video4 --set-selection=target=crop,top=336,left=432,width=1920,height=1080 --set-fmt-video=width=1280,height=720,pixelformat=NV21 --stream-mmap=3 --stream-to=/tmp/mp.out --stream-count=20 --stream-poll

参数说明:

–set-selection=target=crop,top=336,left=432,width=1920,height=1080 裁剪,并偏移

$ v4l2-ctl -d /dev/video4 --set-ctrl 'exposure=1216,analogue_gain=10' --set-selection=target=crop,top=0,left=0,width=2592,height=1944 --set-fmt-video=width=2592,height=1944,pixelformat=BG10 --stream-mmap=3 --stream-to=/tmp/mp.raw.out --stream-count=1 --stream-poll 抓取一帧RAW数据 // RK1808测试命令$ v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap=3 --stream-skip=3 --stream-to=/data/NV12.out --stream-count=1 --stream-poll // RK3568测试命令$ v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap=3 --stream-skip=100 --stream-to=/data/NV12.out --stream-count=1 --stream-poll

参数说明:

-d /dev/video0 指定video设备

–set-fmt-video 指定宽高及pxielformat

pixelformat=NV12 格式 FourCC编码

–stream-mmap 指定 buffer 的类型为 mmap

–stream-skip 指定丢弃(不保存到文件) 前 3 帧

–stream-to 指定帧数据保存的文件路径

–stream-count 指定抓取的帧数

–stream-poll 该选项指示 v4l2-ctl 采用异步 IO

扩展知识:

FourCC与mbus-fmt的区别

mbus-fmt 在物理总线上传输的格式

FourCC 图像视频在内存中存储的格式

查看RAW数据

RAW图像查看工具:7yuv

下载7yuv工具

使用7yuv工具打开图片(默认格式并不能查看图片内容)

调整解析图片格式(查看datasheet可得知Sensor输出图片格式)

主要调整项:分辨率、格式、位数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AHYUauah-1627094399468)(https://i.loli.net/2021/07/24/zkVtSH7rRxMgGAQ.png)]

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。