一.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. git 创建分支,删除分支,管理分支

    参考  http://blog.csdn.net/dijason/article/details/9042425   查看分支: 1 查看本地分支: $ git branch 2 查看远程分支 $ g ...

  2. 判断是ios还是android

    //判断是ios还是androidvar system;var ua = navigator.userAgent.toLowerCase(); if (/iphone|ipad|ipod/.test( ...

  3. 使用Core Animation对象来实现动画

    转载保留原文地址:http://blog.csdn.net/kqjob/article/details/10417461,转载的 在iOS中如果使用普通的动画则可以使用UIKit提供的动画方式来实现, ...

  4. Notes over compiling..

    When compiling VIM on windows, using nmake may be a better choice.. Because so far my attempts to co ...

  5. 求N以内与N互质的数的和

    题目连接 /* 求所有小于N且与N不互质的数的和. 若:gcd(n,m)=1,那么gcd(n,n-m)=1; sum(n)=phi(n)*n/2; //sum(n)为小于n的所有与n互质的数的和 // ...

  6. php sso 单点登录的实现 代码示例

    先说一下这样做的好处吧,先来三个屌丝域名: www.openpoor.com myspace.openpoor.com passport.openpoor.com 大家都知道,虽然他们都是一个域名但主 ...

  7. wifi 3G 流量

    // //  flowStatis.c //  Test // //  Created by iXcoder on 12-7-19. //  Copyright (c) 2012年 iXcoder. ...

  8. Lucene + Hadoop 分布式搜索运行框架 Nut 1.0a9转自http://www.linuxidc.com/Linux/2012-02/53113.htm

    1.概述 不管程序性能有多高,机器处理能力有多强,都会有其极限.能够快速方便的横向与纵向扩展是Nut设计最重要的原则,以此原则形成以分布式并行计算为核心的架构设计.以分布式并行计算为核心的架构设计是N ...

  9. lucene-SpanFirstQuery 和SpanNearQuery 跨度查询

    1.SpanFirstQuery查询 对出现在一个域中前n个位置的跨度查询. public void testSpanFirstQuery() throws Exception{ SpanzFirts ...

  10. MVC 使用Jquery的$.post传递参数

    MVC中,如果要使用 $.post 给 COntroller 传递参数,需要类实现 属性 get set,这样才行