UVC 入门

UVC

市面上 UVC摄像头很多,本文通过win10自带的工具 ,分析摄像头能力。同时通过抓包实现基本调试。

usbview.exe (window debug 神器)

参照 https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/usbview

安装驱动,同时安装VS 时 选择安装 Windows 开发kits 。就能在kits中找到
Windows Kits\10\Debuggers\x64
在这里插入图片描述

UVC SPEC

UVC 拓扑图

在这里插入图片描述

UVC 描述符层次图

在这里插入图片描述

UVC view获取的信息

根据上述的拓扑图 和层次图,USBview能获取对应的信息

设备描述符

设备描述符和USB设备描述符的数据格式一致,各字段的解释详见USB设备描述符。
在这里插入图片描述

配置描述符

配置描述符包含的信息比较多,包括配置描述符本身,也包括关联接口描述符,接口描述符,端点描述符和UVC定义的其它描述符如输入端点描述符等。

第一个当然是配置描述符:
在这里插入图片描述

UVC的接口关联描述符(Interface Association Descriptor )

在这里插入图片描述

控制接口描述符

为标准的描述符,后跟类特定视频控制接口头描述符.

在这里插入图片描述

Class-Specific 视频控制接口头描述符

在这里插入图片描述

其他描述符 也可以一一对应。

视频流输入头描述符

在这里插入图片描述

MJPEG
         ===>Video Streaming MJPEG Format Type Descriptor<===
bLength:                           0x0B
bDescriptorType:                   0x24
bDescriptorSubtype:                0x06
bFormatIndex:                      0x01
bNumFrameDescriptors:              0x06
bmFlags:                           0x01  -> Sample Size is Fixed
bDefaultFrameIndex:                0x01
bAspectRatioX:                     0x00
bAspectRatioY:                     0x00
bmInterlaceFlags:                  0x00
     D00   = 0  non-Interlaced stream or variable
     D01   = 0  2 fields per frame
     D02   = 0  Field 1 not first
     D03   = 0  Reserved
     D4..5 = 0  Field patterns  -> Field 1 only
     D6..7 = 0  Display Mode  -> Bob only
bCopyProtect:                      0x00  -> Duplication Unrestricted
*!*ERROR:  no Color Matching Descriptor for this format          
       
          ===>Video Streaming MJPEG Frame Type Descriptor<===
          --->This is the Default (optimum) Frame index
bLength:                           0x1E
bDescriptorType:                   0x24
bDescriptorSubtype:                0x07
bFrameIndex:                       0x01
bmCapabilities:                    0x00
wWidth:                          0x0A00 = 2560
wHeight:                         0x05A0 = 1440
dwMinBitRate:                0x69780000
dwMaxBitRate:                0x69780000
dwMaxVideoFrameBufferSize:   0x00708000
dwDefaultFrameInterval:      0x00051615 = 33.333300 mSec (30.00 Hz)
bFrameIntervalType:                0x01
===>Additional Discrete Frame TypeData
dwFrameInterval[1]:          0x00051615 = 33.333300 mSec (30.00 Hz)

          ===>Video Streaming MJPEG Frame Type Descriptor<===
bLength:                           0x1E
bDescriptorType:                   0x24
bDescriptorSubtype:                0x07
bFrameIndex:                       0x02
bmCapabilities:                    0x00
wWidth:                          0x0900 = 2304
wHeight:                         0x0510 = 1296
dwMinBitRate:                0x556E0000
dwMaxBitRate:                0x556E0000
dwMaxVideoFrameBufferSize:   0x005B2000
dwDefaultFrameInterval:      0x00051615 = 33.333300 mSec (30.00 Hz)
bFrameIntervalType:                0x01
===>Additional Discrete Frame TypeData
dwFrameInterval[1]:          0x00051615 = 33.333300 mSec (30.00 Hz)

          ===>Video Streaming MJPEG Frame Type Descriptor<===
bLength:                           0x1E
bDescriptorType:                   0x24
bDescriptorSubtype:                0x07
bFrameIndex:                       0x03
bmCapabilities:                    0x00
wWidth:                          0x0780 = 1920
wHeight:                         0x0438 = 1080
dwMinBitRate:                0x3B538000
dwMaxBitRate:                0x3B538000
dwMaxVideoFrameBufferSize:   0x003F4800
dwDefaultFrameInterval:      0x00051615 = 33.333300 mSec (30.00 Hz)
bFrameIntervalType:                0x01
===>Additional Discrete Frame TypeData
dwFrameInterval[1]:          0x00051615 = 33.333300 mSec (30.00 Hz)

          ===>Video Streaming MJPEG Frame Type Descriptor<===
bLength:                           0x1E
bDescriptorType:                   0x24
bDescriptorSubtype:                0x07
bFrameIndex:                       0x04
bmCapabilities:                    0x00
wWidth:                          0x0500 = 1280
wHeight:                         0x02D0 = 720
dwMinBitRate:                0x1A5E0000
dwMaxBitRate:                0x1A5E0000
dwMaxVideoFrameBufferSize:   0x001C2000
dwDefaultFrameInterval:      0x00051615 = 33.333300 mSec (30.00 Hz)
bFrameIntervalType:                0x01
===>Additional Discrete Frame TypeData
dwFrameInterval[1]:          0x00051615 = 33.333300 mSec (30.00 Hz)

          ===>Video Streaming MJPEG Frame Type Descriptor<===
bLength:                           0x1E
bDescriptorType:                   0x24
bDescriptorSubtype:                0x07
bFrameIndex:                       0x05
bmCapabilities:                    0x00
wWidth:                          0x0280 = 640
wHeight:                         0x01E0 = 480
dwMinBitRate:                0x08CA0000
dwMaxBitRate:                0x08CA0000
dwMaxVideoFrameBufferSize:   0x00096000
dwDefaultFrameInterval:      0x00051615 = 33.333300 mSec (30.00 Hz)
bFrameIntervalType:                0x01
===>Additional Discrete Frame TypeData
dwFrameInterval[1]:          0x00051615 = 33.333300 mSec (30.00 Hz)

          ===>Video Streaming MJPEG Frame Type Descriptor<===
bLength:                           0x1E
bDescriptorType:                   0x24
bDescriptorSubtype:                0x07
bFrameIndex:                       0x06
bmCapabilities:                    0x00
wWidth:                          0x0280 = 640
wHeight:                         0x0168 = 360
dwMinBitRate:                0x06978000
dwMaxBitRate:                0x06978000
dwMaxVideoFrameBufferSize:   0x00070800
dwDefaultFrameInterval:      0x00051615 = 33.333300 mSec (30.00 Hz)
bFrameIntervalType:                0x01
===>Additional Discrete Frame TypeData
dwFrameInterval[1]:          0x00051615 = 33.333300 mSec (30.00 Hz)

可以明显看到 设备支持MJPEG

bFormatIndexbFrameIndexwidth X height
112560 X 1440
122304 X 1296
131920 X 1080
141280 X 720
15640 X 480
16640X 360

喜欢作者的文章 或者探讨 关注如下公众号

在这里插入图片描述

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Android UVCAndroid系统上的USB视频类(UVC)设备驱动程序。UVC设备是指插入电脑、手机等设备的摄像头、麦克风、扬声器等外界音频/视频设备,通常通过USB口连接。UVC设备在传输音频视频等数据的过程中,不需要安装驱动程序,只需要插上即可自动识别。此外,Android UVC驱动程序的出现,也使得Android设备可以兼容更多不同品牌的外部音频视频设备,如微型相机、USB摄像头、红外摄像头等。 Android UVC对开发者来说也是很有帮助的。例如,应用程序可以直接访问摄像头的输出,而无需使用专用SDK;还可以通过USB设备连接到外部音频设备,并利用该设备处理应用程序的音频数据;甚至Android UVC还可以为开发者提供将设备作为HDMI输出器或虚拟USB主机的选择,以便在开发特定类型的产品时进行高级调试。 在使用Android UVC的同时,需要考虑的问题也不少。由于UVC设备的独特性,需要特定的USB接口支持才能正常工作。Android UVC还存在锁定、崩溃和数据质量等问题,因此需要谨慎使用。总之,Android UVC驱动程序丰富了Android系统设备与外部媒体设备的互联互通,以及应用程序在Android设备上的开发效率。 ### 回答2: Android UVC是指在Android系统上支持USB Video Class(UVC)设备的功能。UVC是一种视频设备接口标准,可以将外部USB摄像头、微型视频摄像机、望远镜和显微镜等设备与计算机连接,通过USB接口实现与计算机的数据传输。 在Android系统上使用UVC设备可以让用户轻松地进行视频录制、视频会议、远程监控和医疗诊断等应用。UVC设备通过USB接口连接到Android设备上,可以无需安装额外的驱动程序或软件,直接在Android设备上进行视频采集和处理。通过Android UVC功能,消费者可以更方便地使用外部视频设备与Android设备集成,增强设备的多媒体能力,扩展使用场景。 此外,一些Android设备已经支持内置UVC设备,如GoPro等相机,用户可以通过USB接口直接将视频数据导入到Android设备中,实现视频编辑和分享。Android UVC的普及和应用,将进一步加强Android设备的视频处理能力,为用户带来更加便捷和高效的视频交互体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lin_AIOS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值