v4l2常见操作-查看当前摄像头信息,帧率,控制参数,分辨率,支持格式,抓图实践等
一:查看当前有哪些摄像头
grep '' /sys/class/video4linux/video*/name
例如以下为USB插入式camera
二:查看当前摄像头支持的分辨率
v4l2-ctl -d /dev/video14 --get-fmt-video
例如以下摄像头支持的video捕获分辨率为3840*2160
三:查看当前摄像头出帧帧率,对应的分辨率要设置成支持的分辨率
v4l2-ctl --verbose -d /dev/video14 --set-fmt-video=width=3840,height=2160,pixelformat='NV12' --stream-mmap=4 --set-selection=target=crop,flags=0,top=0,left=0,width=3840,height=2160
四:列出指定设备的预览支持格式
v4l2-ctl --list-formats-ext --device /dev/video14
五:获取设备所有信息
v4l2-ctl --all --device /dev/video0
六:列出设备控制值,如亮度设置等。
v4l2-ctl --list-ctrls --device /dev/video0
七:用v4L2工具进行抓图
注意需要根据实际支持的情况,设置宽高,及图像格式
v4l2-ctl --verbose -d /dev/video20 \
--set-fmt-video=width=1920,height=1080,pixelformat='BGR3' \
--stream-mmap=4 --stream-skip=30 \
--stream-to=/data/BGR3_img.yuv \
--stream-count=5 --stream-poll
--stream-count=5 表示一次抓取5帧
--stream-skip=30 表示跳过多少帧
--set-fmt-video=width=1920,height=1080,pixelformat='BGR3' \ 表示抓取宽高及图像格式
--stream-to=/data/BGR3_img.yuv 表示保存到哪里
注意需要关闭已有相机的预览,不然会报设备繁忙错误
抓取正常显示信息
会生成对应的图像文件
Pull图像到电脑
adb pull data/BGR3_img.yuv
用7yuv查看图片
设置好图像格式及分辨率,不然图像是花屏的。
未设置花屏示例