• UVC是一种usb视频设备驱动。用来支持usb视频设备,凡是usb接口的摄像头都能够支持

  • V4L2是Linux下的视频采集框架。用来统一接口,向应用层提供API

UVC:

USB video class(又称为USB video device class or UVC)就是USB device class视频产品在不需要安装任何的驱动程序下即插即用,包括摄像头、数字摄影机、模拟视频转换器、电视卡静态视频相机

最新的UVC版本为UVC 1.5,由USB-IFUSB 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等等。

这样一个UVC能够进行视频显示的话应该满足三个条件:

1 UVC的camera硬件支持

2 UVC驱动支持,包括USB设备驱动以及v4l2的支持

3 上层的应用程序支持

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设备。

12、UVC&V4L2的关系的更多相关文章

  1. UVC和V4L2的关系(转载)

    UVC是一种usb视频设备驱动.用来支持usb视频设备,凡是usb接口的摄像头都能够支持 V4L2是Linux下的视频采集框架.用来统一接口,向应用层提供API UVC: USB video clas ...

  2. 19、opencv和v4l2的关系

    分析如下: v4L2是针对uvc免驱usb设备的编程框架,而opencv是一种跨平台计算机视觉库,opencv不仅支持v4l2框架,还支持windows.os等操作系统上的摄像头框架 cvCreate ...

  3. 12.Hibernate多对多关系

    JavaBean的编写 Person private long pid ; private String name ; private Set<Role> roles = new Hash ...

  4. Hi3559AV100外接UVC/MJPEG相机实时采图设计(三):V4L2接口通过MPP平台输出

    可以首先参考前面两篇文章: Hi3559AV100外接UVC/MJPEG相机实时采图设计(一):Linux USB摄像头驱动分析: https://www.cnblogs.com/iFrank/p/1 ...

  5. Linux 下UVC&amp;V4L2技术简单介绍(二)

    通过前文Linux 下UVC&V4L2技术简单介绍(一)我们了解了UVC和V4L2的简单知识. 这里是USB设备的文档描写叙述:http://www.usb.org/developers/do ...

  6. uvc摄像头代码解析6

    10.扫描视频设备链和注册视频设备 10.1 uvc视频链 struct uvc_video_chain { //uvc视频链 struct uvc_device *dev; //uvc设备 stru ...

  7. uvc摄像头代码解析7

    13.uvc视频初始化 13.1 uvc数据流控制 struct uvc_streaming_control { __u16 bmHint; __u8 bFormatIndex; //视频格式索引 _ ...

  8. 嵌入式Linux下Camera编程--V4L2【转】

    转自:http://blog.csdn.net/fwqlzz/article/details/51126653 版权声明:本文为博主原创文章,未经博主允许不得转载. USB video class(又 ...

  9. 8、摄像头驱动_Linux的V4L2架构分析

    V4L2架构可以参考  linux-3.4.2\Documentation\video4linux\v4l2-framework.txt V4L2全名为Video For Linux 2,它是针对Li ...

随机推荐

  1. Tomcat IO阻塞异常

    tomcat的maxThreads.acceptCount(最大线程数.最大排队数) tomcat 的Connector配置如下 <Connector port="8080" ...

  2. Git学习笔记 2,GitHub常用命令

    廖雪峰Git教程 莫烦Git教程 莫烦Git视频教程 文件三个状态,add之后从工作区(原始状态)到暂存区,commit之后从暂存区到版本库 工作区 暂存区 版本库 unstage stage mas ...

  3. HDFS中的命令行

    HDFS中的命令行 本文介绍了HDFS以命令行执行的时候.几个经常使用的命令行的作用和怎样使用~ 1. fs fs是启动命令行动作,该命令用于提供一系列子命令. 使用形式为hadoop fs –cmd ...

  4. 计算文件大小(C/C++语言)

    #include <stdio.h> int main() { FILE* fp; if (fp = fopen("read files.exe", "r&q ...

  5. 安装vnc出现的问题

    重启vnc 命令:/sbin/service vncserver start或者vncserver VNC的启动/停止/重启 #service vncserver start/stop/restart ...

  6. 如何更改jar包源码

    首先将你要更改的源码文件在eclipse中编译成.class文件 再找到你需要更改的.jar包 在桌面右键新建个文件夹把你要改的.jar包ctrl+c和ctrl+v 准备好一个压缩工具(这里推荐234 ...

  7. 安装配置FreeBSD9全过程体验

    安装配置FreeBSD9全过程体验(时长11分钟) 总所周知,FreeBSD是一个高效.稳定的UNIX操作系统.在今年年初,FreeBSD 又发布了9.0版本,它将采用全新的文本安装器,升级ZFS文件 ...

  8. MVC:一个View显示多个Model(多个Model你可以使用ViewBag或ViewData , 或者:Model["myInfo"] as)

    MVC:一个View显示多个Model 多个Model你可以使用ViewBag或ViewData , 或者:Model["myInfo"] as. 比如: Tuple<str ...

  9. Vue或React多页应用脚手架

    https://github.com/zhujiasheng/vue-multipage https://github.com/MeCKodo/vue-multipage

  10. Android的SQLite的增删查改

    原创作品,允许转载,转载时请务必声明作者信息和本声明.http://www.cnblogs.com/zhu520/p/8343675.html 本人小白,那个大神看到有问题可指出,谢谢.... 一:s ...