UVC全称为USB Video Class,即:USB视频类,是一种为USB视频捕获设备定义的协议标准。是Microsoft与另外几家设备厂商联合推出的为USB视频捕获设备定义的协议标准,已成为USB org标准之一。米尔MYD-YA15XC-T开发板内核已经开启了UVC驱动,因此插入USB UVC摄像头后可以看到识别信息:
V4L2是Video for linux2的简称,为linux中关于视频设备的内核驱动。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video*下,如果只有一个视频设备,通常为/dev/video0。v4l2-ctl是用户空间一组用于测试,配置和使用整个相机子系统的工具,包括外部相机传感器和相机接口。v4l2-ctl 是最有用的实用工具。
v4l2-ctl基本常用的命令如下:
- 使用 --list-devices 选项列出所有可用的视频设备
v4l2-ctl --list-devices
v4l2-ctl -d /dev/video1 -D
v4l2-ctl -L -d /dev/video1
其中可以通过 --set-ctrl 选项更改控制值,如:
v4l2-ctl --set-ctrl test_pattern=1
控制值可以动态更改。
- 设置像素格式,分辨率和帧率,使用 --list-formats-ext 选项可获取受支持的像素格式、分辨率和帧速率:
v4l2-ctl --list-formats-ext -d /dev/video1
v4l2-ctl -d /dev/video1 --list-formats
v4l2-ctl -d /dev/video1 --all
v4l2-ctl --list-framesizes=MJPG -d /dev/video1
GStreamer是用于创建流媒体应用程序的框架,开发板集成了gstreamer系列命令。
gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=1 ! image/jpeg,width=1920,height=1080 ! filesink location=/tmp/capture.jpg
使用 gst-typefind 命令检查图片分辨率
gst-typefind-1.0 /tmp/capture.jpg
初步完成了usb摄像头图像的采集,后续将研究简单的图像处理,视频采集,体验米尔MYD-YA15XC-T开发板的多媒体处理性能。