zoukankan      html  css  js  c++  java
  • UVC调试

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

    Linux内核之中,已经集成了对UVCCamre的支持。

    内核代码路径: kernel-3.10driversmediausbuvc

    若需要打开UVC CAMERA 需要在内核中配置:

    MEDIA_SUPPORT = y

    MEDIA_USB_SUPPORT = y

    USB_VIDEO_CLASS = y

    USB_VIDEO_CLASS_INPUT_EVDEV = y

    如何查看当前的Camera是否支持UVC

    插入摄像头,通过lsusb命令,找到当前UVCCamera的PID和VID

    reyn@reyn-All-Series:~/reyn/k86m/k86m_debug/kernel-3.10$ lsusb

    Bus 001 Device 002: ID 8087:8008 Intel Corp. 

    Bus 002 Device 002: ID 8087:8000 Intel Corp. 

    Bus 003 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse

    Bus 003 Device 049: ID 058f:3842 Alcor Micro Corp. 

    然后执行一下命令lsusb -d 058f:3842 -v | grep "14 Video", 若支持UVC Camera则你会看到如下信息:

    reyn@reyn-All-Series:~/reyn/k86m/k86m_debug/kernel-3.10$ lsusb -d 058f:3842 -v | grep "14 Video"

    Couldn't open device, some information will be missing

          bFunctionClass         14 Video

          bInterfaceClass        14 Video

          bInterfaceClass        14 Video

          bInterfaceClass        14 Video

          bInterfaceClass        14 Video

          bInterfaceClass        14 Video

          bInterfaceClass        14 Video

    在UVC Camrera遇到问题时,可以通过以下命令,打开trace

    sudo echo 0xffff > /sys/module/uvcvideo/parameters/trace    打开

    sudo echo 0 > /sys/module/uvcvideo/parameters/trace    关闭

    dmesg | grep uvc -a     -a 命令是将起作为一个文本文件设备对待

    若当前Camera不支持UVC ,可以通过以下命令,或许当前Camrea的详细配置描述符:

    lsusb -d 058f:3842 -v

    下面介绍一下USB协议关于摄像头的相关知识!

    V4L2:

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

    简单的讲V4L2就是用来管理UVC设备的并且能够提供视频相关的一些API。那么这些API怎么使用或者能被谁使用呢。在Linux系统上有很多的开源软件能够支持V4L2。常见的又FFmpeg、opencv、Skype、Mplayer等等。

    VideoClass设备描述位于USB协议的Interface级,每个设备的Interface分为两类VideoControlInterface(仅仅只用一个)和VideoStreamingInterface(可以具有多个),而与设备的一个相关的所有的USB Interface被称作为一个VideoInterface Collection使用IAD(Interface Association Deor)描述符来描述。

    目前内核支持的UVC camera的类型有 :

    YUV 4:2:2 (YUYV)

    YUV 4:2:0 (NV12)

    MJPEG

    YVU 4:2:0 (YV12)

    YUV 4:2:0 (I420)

    YUV 4:2:0 (M420)

    YUV 4:2:2 (UYVY)

    Greyscale 8-bit (Y800)

    Greyscale 8-bit (Y8  )

    Greyscale 10-bit (Y10 )

    Greyscale 16-bit (Y16 )

    RGB Bayer

    RGB565

    H.264

    插入摄像头,如果在设备节点下出现/dev/video0; 则证明你的uvc camera在内核的驱动已经加载了,然后就可以用测试工具开始测试你的uvc摄像头了。

  • 相关阅读:
    解释器模式
    java-->Hashtable简单使用
    HashTable和HashMap区别
    享元模式
    Beanutils.copyProperties( )用法
    删除List集合中的元素方法
    Date中before和after方法的使用
    Spring定时任务@Scheduled注解使用方式
    Oracle中INSTR、SUBSTR和NVL的用法
    StringBuffer的delete方法与deleteCharAt方法的区别。
  • 原文地址:https://www.cnblogs.com/ahuo/p/5461663.html
Copyright © 2011-2022 走看看