• 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摄像头了。

  • 相关阅读:
    高中数学相关的专业术语
    数学-高数2
    python+unittest+xlrd+request搭建API测试框架
    接口自动化,断言方法,深度定位错误
    python+requests+unittest API接口测试
    python+unittest框架整理(一点点学习前辈们的封装思路,一点点成长。。。)
    学习python的第一个小目标:通过requests+xlrd实现简单接口测试,将测试用例维护在表格中,与脚本分开。
    队列 —— 先入先出的数据结构
    卷积神经网络的简单可视化
    HOG 特征提取算法(实践篇)
  • 原文地址:https://www.cnblogs.com/ahuo/p/5461663.html
Copyright © 2020-2023  润新知