zoukankan      html  css  js  c++  java
  • UVC和V4L2的关系(转载)

    • 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)定义包括基本协议及负载格式 

    这个链接是Linux中对UVC支持的相关描述

    V4L2:

    Video4Linux或V4L是一个视频截取及设备输出API,以及Linux的驱动程序框架,支持很多USB摄像头电视调谐卡以及其他设备。Video4Linux与Linux内核紧密集成

    两者之间的关系

    简单的讲V4L2就是用来管理UVC设备的并且能够提供视频相关的一些应用程序接口。那么这些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设备。

    转载自:

    UVC&V4L2的关系

  • 相关阅读:
    POJ 2251 Dungeon Master
    HDU 3085 Nightmare Ⅱ
    CodeForces 1060 B Maximum Sum of Digits
    HDU 1166 敌兵布阵(树状数组)
    HDOJ 2050 折线分割平面
    HDU 5879 Cure
    HDU 1878 欧拉回路
    HDU 6225 Little Boxes
    ZOJ 2971 Give Me the Number
    HDU 2680 Choose the best route
  • 原文地址:https://www.cnblogs.com/y4247464/p/10629220.html
Copyright © 2011-2022 走看看