以前做过一点儿USB相关的东西,最近因为项目需要学习了一下多媒体的相关知识。继而想了解一下UVC和V4L2的相关知识。
首先介绍两个概念:
UVC:
USB video class(又称为USB video device class or UVC)就是USB device class视频产品在不需要安装任何的驱动程序下即插即用,包括摄像头、数字摄影机、模拟视频转换器、电视卡及静态视频相机。
最新的UVC版本为UVC 1.5,由USB-IF(USB Implementers Forum)定义包括基本协议及负载格式 [1] [2].
这是wikipedia的解释。
这个链接是Linux中对UVC支持的相关描述。http://www.ideasonboard.org/uvc/
V4L2:
Video4Linux或V4L是一个视频截取及设备输出API,以及Linux的驱动程序框架,支持很多USB摄像头、电视调谐卡以及其他设备。Video4Linux与Linux内核紧密集成,Video4Linux取名的灵感来自Video
for Windows(有时候会缩写为“V4W”),但两者在技术上并没有任何关系[1][2]。
从两个的介绍也能看出来这两者之间的关系。
简单的讲V4L2就是用来管理UVC设备的并且能够提供视频相关的一些API。那么这些API怎么使用或者能被谁使用呢。在Linux系统上有很多的开源软件能够支持V4L2。常见的又FFmpeg、opencv、Skype、Mplayer等等。
原文:http://blog.csdn.net/codectq/article/details/44278465