现象:

树莓派4b或3b+   插着两个USB免驱相机

摄像头朝着灯就会报 time out

摄像头不朝着灯就不报

问题:

功率不够

朝着灯可能触发了USB相机的曝光补偿导致功率变大

解决:

使用带额外供电的hub

linux下调用相机出现select timeout错误,有可能是相机(尤其是USB2.0相机)插在2.0接口上时,端口供电能力不足。如果排查了其他问题还没有解决,可以看看有没有这个端口的问题。

V4L2的select函数的最后一个参数是timeout,timeout是用来设置超时时间的,设置了timeout以后,如果select在没有文件描述符监视可用的情况下,会等待这个timeout,超过这时间select就会返回错误。

当遇到select timeout错误的时候,不能只考虑调大timeout的时间,实际上这是治标不治本,timeout不可能调的很大,调大一点又没什么用,肯定还是有别的传输阻塞之类的问题。这个问题困扰了很久,后来就想,会不会是渣本的端口不行,换了个3.0接口的电脑,再没有出现这个问题,这个问题咨询了相机厂家,他们的回答是USB2.0相机的传输和供电是做在一起的,因此不是很稳定,当数据传输和供电之间可能会相互影响,关于这个怎么影响的我搞不清楚,但是这个问题不妨作为一个额外的检查思路吧。

给题主做个参考吧,罗技c270(分辨率720P)工作状态下大约需要0.2A,单个usb2.0接口一般保守设计电流0.5A,usb3.0 1A,所以单口保底拖2个是没问题的,如果你的摄像头如果带夜视的话夜间功率会飙升,这个要根据实际情况分析了,不过这种情况也可以使用带供电口的usb hub解决。

接四个摄像头问题不大,辅助供电头+充电器就能搞定。

opencv读取USB相机select timeout问题的更多相关文章

  1. python opencv 读取USB摄像头的像素问题

    问题描述 每次调用capture读取video的时候,还回的像素都是640x480,不管是笔记本的摄像头还是USB摄像头,明明我的摄像头是支持130万读取的功能的呀. 问题分析 一番查找,关于用ope ...

  2. 系统---添加一个相机的IP实现opencv读取rstp视频流

    系统---添加一个相机的IP实现opencv读取视频流 这里: 第一步,添加一个6段的相机IP地址:先ping 一个IP地址,ping通的是再用的IP,不可添加:ping不通的,添加IP到网络. 第二 ...

  3. USB系列之二:读取USB设备的描述符

    在前面的文章中,我们已经给出了USB协议的链接地址,从这篇文章起,我们会涉及到许多USB 1.1的内容,我们的指导思想是先从熟悉USB 1.1协议入手,先使用现成的HCD和USBD,直接面对客户端驱动 ...

  4. 虚拟机上使用 opecnv 读取USB摄像头无法显示

    使用opecv读取USB摄像头时候,无法显示图像. 设置 首先查看虚拟机Ubuntu检测摄像头是否已正常插入: ls /dev/video* 结果为: 设置虚拟机USB属性: USB的兼容性设置为US ...

  5. 【计算机视觉】opencv读取多个摄像头

    [计算机视觉]opencv读取多个摄像头 标签(空格分隔): [图像处理] 说明:今天蹭了机器视觉课程,讲到了stereopsis,立体视觉,讲到了关于通过多个摄像头获取object的depth信息的 ...

  6. 虚拟机下Linux读取USB设备的问题虚拟机下Linux无法读取USB设备的解决方案

    我们在虚拟机中识别USB设备有三种情况导致Linux系统不能读取到USB设备: 1. .当虚拟机的USB服务没有开启的时候 2. 若虚拟机的USB连接的设置选项没有设置好 3. Widows抢先一步, ...

  7. Opencv读取各种格式图片,在TBitmap上面重绘

    //opencv读取图片 cv::Mat image; //const char *fileName = "HeadImage-UI/Photo-001.bmp"; const c ...

  8. 读取USB HDD(USB移动硬盘信息)序列号的代码

    读取USB HDD(USB移动硬盘)序列号的代码,型号及分位. 使用Visual Studio 2010编译成功. 代码使用了CrystalDiskInfo中的代码smartata.c中相关代码: 例 ...

  9. opencv读取摄像头实时流代码

    opencv读取摄像头实时流代码: #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; ...

随机推荐

  1. C语言中,嵌套的if语句的一些经验...

    double f(double x){double result;if(x<0)result=-x+sin(x);else if(x==0)result=0;     else if(10> ...

  2. c++用控制符控制输出格式

    #include<iostream> #include<cstdio> #include<iomanip> using namespace std; int mai ...

  3. "One or more types required to compile a dynamic expression cannot be found. Are you missing references to Microsoft.CSharp.dll and System.Core.dll?"的解决方法

    #事故现场: 在一个.net 4.0 的项目中使用dynamic,示例代码如下: private static void Main(string[] args) { dynamic obj; obj ...

  4. git 添加add readme.txt 报fatal: pathspec 'readme.txt' did not match any files错误

    刚刚接触git版本管理器,跟着廖雪峰老师的git教程学习,在创建一个新的文件时,使用的是$ git add readme.txt指令,但是报出fatal: pathspec 'readme.txt' ...

  5. 10、Fiddler中设置断点修改Response

    当然Fiddler中也能修改Response 第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->After Response  (这种方法会中 ...

  6. 框架基础:深入理解Java注解类型(@Annotation)

    注解的概念 注解的官方定义 首先看看官方对注解的描述: An annotation is a form of metadata, that can be added to Java source co ...

  7. 天天向上的力量python(举一反三)

    天天向上的力量python实例(举一反三) 实例1: 一年365天,以第1天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高0.1%,没有学习实能力值相比前一天下降0.1%. 问:每天努力 ...

  8. 安装keepalived OpenSSL is not properly installed on your system. !!!

    错误信息: configure: error: !!! OpenSSL is not properly installed on your system. !!! !!! Can not includ ...

  9. Redisson实现分布式锁(3)—项目落地实现

    Redisson实现分布式锁(3)-项目落地实现 有关Redisson实现分布式锁前面写了两篇博客作为该项目落地的铺垫. 1.Redisson实现分布式锁(1)---原理 2.Redisson实现分布 ...

  10. \" 转义字符, \a系统警报,逐字字符串(verbatim string)

    string str="The key factors are \"focus\" and \"perseverance\""; strin ...