一.FAQ

1.判断自己的摄像头是否支持uvc标准
输入lsusb //列出usb设备
[cpp]  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  
Bus 001 Device 003: ID 0c45:62f1 Microdia                       //摄像头  
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  
Bus 002 Device 002: ID 1a40:0101 TERMINUS TECHNOLOGY INC.   
Bus 002 Device 003: ID 17ef:6025 Lenovo   
更详细的树形图lsusb -t
[cpp] 
/:  Bus 02.Port 1: Dev 1, class="root_hub", Driver=musb-hdrc/1p, 480M  
    |__ Port 1: Dev 2, If 0, class="hub", Driver=hub/4p, 480M  
/:  Bus 01.Port 1: Dev 1, class="root_hub", Driver=musb-hdrc/1p, 480M  
    |__ Port 1: Dev 4, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=, 480M  
    |__ Port 1: Dev 4, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=, 480M  
    |__ Port 1: Dev 4, If 2, class="audio", Driver=snd-usb-audio, 480M  
    |__ Port 1: Dev 4, If 3, class="audio", Driver=snd-usb-audio, 480M  
lsusb -d 0c45:62f1 -v | grep "14 Video" 检测设备属性
[cpp]  
bFunctionClasss      14 Video  
bInterfaceClass        14 Video  
bInterfaceClass        14 Video  
bInterfaceClass        14 Video  
bInterfaceClass        14 Video  
bInterfaceClass        14 Video  
bInterfaceClass        14 Video  
bInterfaceClass        14 Video  
bInterfaceClass        14 Video  
显示类似上面信息表示该摄像头是支持uvc标准的
2.使能/关闭调试的trace打印信息
[cpp] 
echo 0xffff > /sys/module/uvcvideo/parameters/trace  
echo 0 > /sys/module/uvcvideo/parameters/trace  
3.播放测试
[cpp] view plaincopy
mplayer tv:// -tv fps=25  
 
二.uvc类标准
1.下载标准协议地址
[cpp]  
http://www.usb.org/developers/devclass_docs  
2.功能特性(翻译)
Each video function has a single VideoControl (VC) interface and can have several VideoStreaming (VS) interfaces
每个视频有且仅有1个VideoControl (VC)接口和可有多个 VideoStreaming (VS) 接口
The VideoControl (VC) interface is used to access the device controls of the function whereas
the VideoStreaming (VS) interfaces are used to transport data streams into and out of the function.
VC接口用于设备功能控制,VS接口用于传输数据流进出
Video Interface Class Code(A.1 P171)
视频接口类代码 就是宏定义的USB_CLASS_VIDEO
总共有3种子类subclass
1.VideoControl Interface 视频控制接口子类
2.VideoStreaming Interface 视频数据流接口子类
3.Video Interface Collection 视频接口集合子类
宏定义
[cpp] v 
/* A.2. Video Interface Subclass Codes */  
#define UVC_SC_UNDEFINED                        0x00  
#define UVC_SC_VIDEOCONTROL                     0x01  
#define UVC_SC_VIDEOSTREAMING                   0x02  
#define UVC_SC_VIDEO_INTERFACE_COLLECTION       0x03  
Units provide the basic building blocks to fully describe most video functions ,A Unit has one or more Input Pins and a single Output Pin,
Unit提供了基础模块来全面描述大部分的视频功能,一个Unit可以由一个或多个输入引脚和仅一个输出引脚(这里的每一个pin代表一个逻辑上的数据流)

uvc摄像头代码解析1的更多相关文章

  1. uvc摄像头代码解析5

    8.初始化uvc控制 8.1 重要结构体 struct uvc_control { //uvc控制 struct uvc_entity *entity; //uvc实体 struct uvc_cont ...

  2. uvc摄像头代码解析6

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

  3. uvc摄像头代码解析7

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

  4. c#专业的UVC摄像头深控类库-SharpCamera介绍

    SharpCamera是专业的UVC摄像头深控类库.允许您在C#代码内修改摄像头的高级参数,比如亮度.对比度.清晰度.色调.饱和度.伽玛值.白平衡.逆光对比.增益.缩放.焦点.曝光.光圈.全景.倾斜. ...

  5. C#控制操控操作多个UVC摄像头设备

    有时,我们需要在C#代码中对多个UVC摄像头进行操作,如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像头控制项目 ...

  6. C#采集UVC摄像头画面并支持旋转和分辨率切换

    在项目中,我们会需要控制uvc摄像头,采集其实时画面,或者对其进行旋转.目前市面上大多数USB摄像头都支持UVC协议.那么如何采集呢?当然是采用SharpCamera!因为SharpCamera支持对 ...

  7. VBA常用代码解析

    031 删除工作表中的空行 如果需要删除工作表中所有的空行,可以使用下面的代码. Sub DelBlankRow() DimrRow As Long DimLRow As Long Dimi As L ...

  8. [nRF51822] 12、基础实验代码解析大全 · 实验19 - PWM

    一.PWM概述: PWM(Pulse Width Modulation):脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形. PWM 的几个基本概念: 1) 占空比:占空比是指 ...

  9. [nRF51822] 11、基础实验代码解析大全 · 实验16 - 内部FLASH读写

     一.实验内容: 通过串口发送单个字符到NRF51822,NRF51822 接收到字符后将其写入到FLASH 的最后一页,之后将其读出并通过串口打印出数据. 二.nRF51822芯片内部flash知识 ...

随机推荐

  1. linux服务器之LVS、Nginx和HAProxy负载均衡器对比总结

    LVS特点: 1.抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生: 2.稳定性.可靠性好,自身有完美的热备方案:(如:LVS+Keepalived) 3.应用范围比较广 ...

  2. C#后台绑定ComboBox

    C# using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syste ...

  3. 【转】configure/make/make install的使用说明

    这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤. ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GCC ...

  4. HTML+CSS Day06 超链接的样式与搭配

    1.格式 a:link    {} 普通的.未被访问的链接 a:visited {}  用户已访问的链接 a:hover  {} 鼠标指针位于链接的上方 a:active{} 链接被点击的时刻 2.常 ...

  5. UVALive 3027 并查集

    #include <cstdio> #include <queue> #include <cstring> #include <iostream> #i ...

  6. Hibernate的dynamic-insert和dynamic-update的使用

    Hibernate在初始化的时候,默认按照配置为表预定义insert,delete,update,select(by id)的SQL语句放在session中,其中insert,update,selec ...

  7. Android NDK and OpenCV Development With Android Studio

    Android NDK and OpenCV Development With Android Studio Hujiawei 172 2014年10月22日 发布 推荐 0 推荐 收藏 4 收藏,5 ...

  8. linux系统定时重启tomcat

    #touch auto-start.sh [root@Linux opt]# echo $LANGen_US.UTF-8 #vim auto-start.sh #!/bin/sh export LAN ...

  9. HDU 5768 Lucky7 (容斥原理 + 中国剩余定理 + 状态压缩 + 带膜乘法)

    题意:……应该不用我说了,看起来就很容斥原理,很中国剩余定理…… 方法:因为题目中的n最大是15,使用状态压缩可以将所有的组合都举出来,然后再拆开成数组,进行中国剩余定理的运算,中国剩余定理能够求出同 ...

  10. HDU 3966 Aragorn's Story 动态树 树链剖分

    Aragorn's Story Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...