硬件准备
开发板(-w3)、USB摄像头(罗技高清网络摄像机 C93)、1000M光纤 、 串口调试工具
v4l2采集画面
v4l2-ctl是一个用于Linux系统的命令行实用程序,用于控制视频4 Linux 2(V4L2)设备 。V4L2是Linux内核中的视频设备驱动框架,用于支持各种摄像头、摄像头和视频采集设备 。
将USB摄像头插入开发板后,会有如下打印:
[14720.842825] usb 7-1: new low-speed USB device number 2 using xhci-hcd[14720.986597] usb 7-1: New USB device found, idVendor=413c, idProduct=301a, bcdDevice= 1.00[14720.986638] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0[14720.986653] usb 7-1: Product: Dell MS116 USB Optical Mouse[14720.986667] usb 7-1: Manufacturer: PixArt[14721.008123] input: PixArt Dell MS116 USB Optical Mouse as /devices/platform/usbdrd3_1/fc400000.usb/xhci-hcd.5.auto/usb7/7-1/7-1:1.0/0003:413C:301A.0001/input/input5
使用v4l2-ctl --list-来获取usb摄像头的节点:
【RK3588ArmSoM-W3开发板之 USB摄像头图像预览】root@linaro-alip:~# v4l2-ctl --list-devicesrk_hdmirx (fdee0000.hdmirx-controller):/dev/video20rkisp-statistics (platform: rkisp):/dev/video18/dev/video19rkcif-mipi-lvds2 (platform:rkcif):/dev/media0rkisp_mainpath (platform:rkisp0-vir0):/dev/video11/dev/video12/dev/video13/dev/video14/dev/video15/dev/video16/dev/video17/dev/media1罗技高清网络摄像机 C93 (usb-fc880000.usb-1):/dev/video21/dev/video22/dev/media2
运行 v4l2-ctl -d /dev/ --list--ext 命令可以查看你的摄像头支持的格式:
从这个命令可以看到这款摄像头支持两种格式“YUYV” “MJPG”.
摄像头YUYV格式画面采集
介绍一些常用的v4l2-ctl命令选项和功能
v4l2-ctl -d /dev/video21 -D // 确认video节点v4l2-ctl -d /dev/video21 --get-fmt-video // 确认分辨率和图像格式v4l2-ctl -d /dev/video21 --get-dv-timings //获取当前timingsv4l2-ctl -d /dev/video21 --query-dv-timings // 实时查询timings
查看当前参数:使用v4l2-ctl -d /dev/ -l命令,将显示当前连接到/dev/设备的所有控制参数和其当前值 。
设置视频格式和帧率:通过指定视频格式和帧率来配置摄像头,例如:
文章插图
v4l2-ctl -d /dev/video0 --set-fmt-video=width=1280,height=720,pixelformat=YUYVv4l2-ctl -d /dev/video0 --set-parm=30
这里使用如下命令采集一帧画面报错到/data/01.yuv
v4l2-ctl --verbose -d /dev/video21 --set-fmt-video=width=640,height=480,pixelformat=YUYV --stream-mmap=4 --stream-skip=3 --stream-count=5 --stream-to=/data/01.yuv --stream-poll
将文件通过使用adb上传到PC端使用7YUV工具查看
摄像头MJPG格式画面采集
mjpg- 是 上一个开源的 uvc 视频应用,它可以获取摄像头的视频流,然后通过局域网传输,可以直接在-w3开发板上编译这个代码并运行:
git clone https://github.com/andyshrk/mjpg-streamer.gitcd mjpg-streamer/mjpg-streamer-experimental/apt install cmake libjpeg62-turbo-dev build-essentialmake
在编译过程中,遇到两个报错问题,防止后续遇上再找资料,这里也附上:
of
make[3]: 离开目录“/root/mjpg-/mjpg--/”
make[3]: 进入目录“/root/mjpg-/mjpg--/”
[ 34%]CXX///.dir/.cpp.o
/root/mjpg-/mjpg--///.cpp:86:5: :on ; C++11a spaceandmacro [--]
86 | " Help for input …: “”\n"
| ^
/root/mjpg-/mjpg--///.cpp: In‘void* (void*)’:
/root/mjpg-/mjpg--///.cpp:408:34: error: ‘ITY’ was notin this scope; did you mean ‘’?
文章插图
408 | .(ITY);
| ^~~~~~~~~~~~~~~~~~~~~~~
|
make[3]: *** [///.dir/build.make:82:///.dir/.cpp.o] 错误 1
- 博客大咖收藏录
- 小程序第三方平台开发代替客户各类小程序批量操作
- 软件开发:站在风口上的低代码
- 站在风口上,猪都能飞起来!为什么有些人做了N年开发还是只会调API的CV工程师?
- 裁员潮来袭:Android开发如何自救?未来三年,趁早做好这3个准备
- j2me 3D开发-基本地形渲染技术
- 三 Android 程序开发——百度地图的使用 地图定位(定位+跟随+距离测量
- 2023全新UI的AI网址导航系统源码+基于Thinkphp6框架开发的
- 【JVM】内存分析工具jhsdb
- IE11 —— F12 开发者工具