
清空记录
历史记录
取消
清空记录
历史记录

瑞芯微RK3576芯片平台基于UVC协议,配置USB摄像头实现即插即用的适配采集功能,基于触觉智能RK3576开发板Purple Pi OH2演示。
UVC协议
UVC(USB Video Class,USB视频类) 是由 USB Implementers Forum(USB-IF) 制定的USB设备类标准,旨在统一视频设备(如摄像头、视频采集卡)与主机系统的通信协议,实现“即插即用”的视频采集功能。Linux系统通过 、uvcvideo驱动(基于V4L2框架)原生支持UVC协议,无需厂商专用驱动,是目前嵌入式Linux和桌面Linux中最常用的摄像头接入方案。
触觉智能RK3576开发板采用核心板+底板设计,支持二次开发底板。其高性能AIoT核心板,凭借其8核CPU+4K编解码+16M ISP的强大性能,可应用于以下领域:工业视觉检测、智能安防、医疗影像、车载视频。
演示设备为触觉智能RK3576开发板Purple Pi OH2,系统固件为Buildroot2024。
其配套RK3576核心板,拥有40.5×40.5mm极致小尺寸,邮票孔封装,支持LPDDR4或LPDDR5高速内存,率先适配开源鸿蒙OpenHarmony5.0国产操作系统,100%全国产,支持最高-40~85℃工业级环境。
配置内核
通过RK3576开发板Buildroot系统,修改内核配置文件使能UVC协议支持,触觉智能出厂SDK默认支持此功能。修改代码如下:
CONFIG_MEDIA_USB_SUPPORT=yCONFIG_USB_VIDEO_CLASS=y
重新编译内核进行测试,命令如下:
cd./build.sh kernel
开发板上电进入系统接入USB摄像头,打印log信息发现一个UVC设备。
USB摄像头设备节点。命令如下:
grep '' /sys/class/video4linux/video*/name
从以上信息得知USB摄像头设备节点为/dev/video36和/dev/video37,一般取较小的一个节点即/dev/video36。
查看USB摄像头支持的图像格式,命令如下:
v4l2-ctl -d /dev/video36 --list-formats-ext
从以上信息得知,USB摄像头输出图像支持以下格式与帧率:
MJPG 1920x1080 30/25fpsMJPG 1280x720 30/25fpsMJPG 640x480 30/25fpsMJPG 640x360 30/25fpsMJPG 352x288 30/25fpsYUYV 640x480 30fpsYUYV 640x360 30fpsYUYV 352x288 30fpsYUYV 352x240 30fps
测试预览
以下测试,使用gstreamer工具预览USB摄像头图像。
由于USB摄像头输出图像是MJPG格式,需指定使用mppjpegdec解码器。
export DISPLAY=:0gst-launch-1.0 v4l2src device=/dev/video36 ! image/jpeg,width=1920,height=1080,framerate=30/1 ! mppjpegdec ! videoconvert ! autovideosink
1080P分辨率,实际帧率测试为26fps:
ffmpeg -loglevel info -stats -f v4l2 -input_format mjpeg -video_size 1920x1080 -framerate 30 -i /dev/video36 -t 10 -f null -
如果USB摄像头输出图像是YUYV格式,则不需要指定mppjpegdec解码器:
export DISPLAY=:0gst-launch-1.0 v4l2src device=/dev/video36 ! video/x-raw,format=YUY2, width=640, height=480, framerate=30/1 ! videoconvert ! autovideosink sync=false
640x480分辨率实际帧率测试为26fps:
ffmpeg -loglevel info -stats -f v4l2 -input_format yuyv422 -video_size 640x480 -framerate 30 -i /dev/video36 -t 10 -f null -
