UVC是一种usb视频设备驱动。用来支持usb视频设备,凡是usb接口的摄像头都可以支持php
V4L2是Linux下的视频采集框架。用来统一接口,向应用层提供APIhtml
UVC:linux
USB video class(又称为USB video device class or UVC)就是USB device class视频产品在不须要安装任何的驱动程序下即插即用,包括摄像头、数字摄影机、模拟视频转换器、电视卡及静态视频相机。框架
最新的UVC版本为UVC 1.5,由USB-IF(USB Implementers Forum)定义包括基本协议及负载格式 ide
这个连接是Linux中对UVC支持的相关描述工具
V4L2:lua
Video4Linux或V4L是一个视频截取及设备输出API,以及Linux的驱动程序框架,支持不少USB摄像头、电视调谐卡以及其余设备。Video4Linux与Linux内核紧密集成
idea
二者之间的关系spa
简单的讲V4L2就是用来管理UVC设备的而且可以提供视频相关的一些应用程序接口。那么这些API怎么使用或者能被谁使用呢。在Linux系统上有不少的开源软件可以支持V4L2。常见的有FFmpeg、opencv、Skype、Mplayer等等。视频
这样一个UVC可以进行视频显示的话应该知足三个条件:
一、 UVC的camera硬件支持
2 、UVC驱动支持,包括USB设备驱动以及v4l2的支持
三、 上层的应用程序支持
linux UVC驱动是为了全面的支持UVC设备。它包括V4L2内核驱动程序和用户空间工具补丁。这个视频设备或者USB视频类的USB设备类的定义定义了在USB上的视频流的功能。UVC类型的外设只须要一个通用的驱动支持就可以正常工做,就像USB 大容量存储设备同样。
UVC的linux kernel驱动程序和支持的硬件设备都在这里有相关的描述:http://www.ideasonboard.org/uvc/。
判断一个摄像头是否属于UVC规范能够使用以下方法:
1 使用lsusb命令或其余硬件信息查看工具,找出摄像头的设备号(Vendor ID)和产品号(Product ID)。
2 查找是否有视频类借口信息
lsusb -d VID:PID -v | grep "14 Video"
若是兼容UVC,则会输出相似信息
bFunctionClass 14 Video
bInterfaceClass 14 Video
bInterfaceClass 14 Video
bInterfaceClass 14 Video
若是没有以上信息,则是non-UVC设备。
转载自: