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

  • 相关阅读:
    退休夫妇不顾反对坚持创业,把自己的品牌推向了市场
    年终将至,财务人如何做好数据分析?
    圣诞快乐:Oracle Database 19c 的10大新特性一览
    perl 获取表记录数
    rex 防止调度还没完成后又继续发起
    希腊女孩创办自媒体教希腊语,如今用户已达1000人
    在20天里赚三千多元,他靠创意经营商店,扩大了店面
    小杂货店的崛起,他坚信创新和拼搏是成功的两大法宝
    thinkphp
    thinkphp
  • 原文地址:https://www.cnblogs.com/ahuo/p/5461663.html
Copyright © 2011-2022 走看看