资料:[野火]《快速使用手册---基于LubanCat-RK3588系列板卡》_20260328.pdf------34章
板子:BLC5
摄像机:IMX415
一、相机
时间紧任务重,先跑通,不看V4L2等内容了,后面有时间再补。
单摄像机,参考《快速使用手册》的34.4 LubanCat-5部分内容。

1.1 修改配置文件
终端打开
bash
sudo vi /boot/uEnv/uEnv.txt
我这里相机是imx415,插的是CAM0。将cam0下面前两行(imx415)选一个,取消掉注释。
注意,CAM0和1支持4K 30fps、1080P 60fps,CAM2~5则是4K 15fps、1080P 60fps
所以如果需要4K则取消第一行的注释,需要1080P则取消第二行注释。如果用的是ov8858,则从后面的挑选。

保存退出。重启板子
1.2 查看节点
bash
v4l2-ctl --list-devices

单摄像机会有rkisp0-vir0,我们直接操作rkisp_mainpath下的第一个节点/dev/video11
如果是多个摄像机,则有rkisp0-vir0、rkisp0-vir1......,也都是操作每个下面的第一个节点。
各种命令
接下来就可以测试摄像头了。命令中我以/dev/video11为例。如果自己的摄像头不是video11需要自行修改命令。
打开可视化界面
在屏幕上显示当前摄像机的画面。这一步需要给板子插上屏幕。命令中的分辨率可以自己调整。
bash
gst-launch-1.0 -v v4l2src device=/dev/video11 ! "video/x-raw,format=(string)UYVY,width=1920,height=1080" ! videoconvert ! autovideosink
查看摄像头格式和分辨率
bash
v4l2-ctl --list-formats-ext --device=/dev/video11

可以看到摄像头支持UYUY、NV16、NV61等格式,分辨率3840×2160
查看摄像头所有信息
bash
v4l2-ctl --all --device /dev/video11
测试摄像头帧率
里面的分辨率以及支持格式pixelformat可自行修改
bash
v4l2-ctl -d /dev/video11 \
--set-fmt-video=width=3840,height=2160,pixelformat='UYVY' \
--stream-mmap=4 \
--set-selection=target=crop,flags=0,top=0,left=0,width=3840,height=2160\
--stream-count=500
拍照
会在当前路径下保存一张图片picture.jpg
bash
sudo gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video11 ! jpegenc ! filesink location=picture.jpg
录像
输入命令后开始录像,直到ctrl+c结束,会在当前路径下生成一个out.yuv文件。
bash
v4l2-ctl --verbose -d /dev/video11 --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 --stream-to=out.yuv
生成处理的是一个格式为NV12的原始像素数据,没法直接播放,需要用下面的命令:
bash
ffplay -f rawvideo -video_size 3840x2160 -pixel_format nv12 out.yuv