当进行多个USB视频捕捉时,不是每个USB插口都能插上一个USB摄像头。如果这样做的话,结果可能是屏幕一片空白,什么都没有,因为摄像头初始化会出错,导致程序不可正常运行。
 
先谈谈USB的传输速度问题吧。一个USB2.0的理论传输速度为480Mbps,也就是60MBps。当然,实际上不可能达到这个理论的最大值。一般只能达到这个值的70%左右,读入速度为30-42MBps,写入速度为25-30MBps。当我们用一个摄像头采集时,假设采集一帧的分辨率为640*480(这个分辨率是大多数摄像头都支持的分辨率),图像是24位的位图,采集帧率为30Fps,那么所需的带宽为640*480*24*30bps,即640*480*24*30/8/1024/1024=26.37MBps。可见,当插上一个USB摄像头的时候,按照这种方式进行采集时,就已经占了读入的大半速度,当插上两个时,结果可想而知,要么很卡,要么程序就无法运行。
 
那这样的话,岂不是不能进行多个摄像头的同时采集?实际上,刚才说的传输速度,是针对一个USB Controller而言。一台电脑上面一般不可能只有一个USB Controller的。所以,当多个摄像头插在不同的USB Controller上面时,就能进行流畅的视频采集了。在这里,还有必要说下USB Controller的问题。一台电脑上面,可能有多个USB插口,但是并不等同与有相同数目的USB Controller。以我的笔记本为例,上面有4个USB插口,而只有两个USB Controller。稍微查一下就能得知,一个USB Controller上面连了一个USB插口,另外一个USB Controller上面连了3个USB插口。为什么会这样呢,详细讲解下USB的结构。
 
我们知道,主板上的南桥是连接外设和北桥的。USB Controller就是接在了南桥上面。根据我的理解,一般是OHCI(Open Host Controller Interface)或者UHCI(Universal Host Controller Interface)加上EHCI(Enhanced Host Controller Interface)来作为一个USB Controller。OHCI或UHCI提供全速和低速的USB传输,而EHCI提供高速的USB传输。USB Controller会根据连接的设备来自动选取是OHCI(或UHCI)还是EHCI。然后一个USB Controller上面接Hub,Hub上面连了多个USB插口。我们电脑上面的USB插口就是Hub上面分出来的。
 
因此,不管有多少个USB插口在电脑上,只有连在了不同的USB Controller上面,才能保证视频的流畅性。这点可以借助驱动精灵来查看是否不同的摄像头接在了不同的USB Controller上面。驱动精灵的硬件检测选项单里面,点击详细信息,然后端口->USB,里面就有各种详细的连接情况。一般一个摄像头,名称为Composite Device,可是查看一个USB Controller上面是不是连接了多个Composite Device,以确保一对一的连接。
 
这样,DirectShow中多摄像头采集时,才能保证连接端口没有出现问题。

多个USB视频捕捉的连接问题相关推荐

  1. usb 视频设备 按钮消息处理 和普通usb连接的事件处理

    usb 视频设备 按钮消息处理 和普通usb连接的事件处理 (c#版,c++/c可仿照修改) 最近要做个usb camera的例子,试过了很多方法,一般的usb连接的处理方法: (1) define ...

  2. [转]DirectShow应用——视频捕捉WDM Vs VFW

    本文转自:http://bbs.njupt.edu.cn/cgi-bin/bbsanc?path=/groups/computer.faq/MultiMedia/D52F2B929/D99113C57 ...

  3. 用VC++ 6.0实现视频捕捉

    用VC++ 6.0实现视频捕捉 发布: 2007-7-04 20:47 | 作者: admin | 来源: 网友评论 | 查看: 151次 | 进入软件测试论坛讨论 领测软件测试网 刘力天 方 兰 本 ...

  4. 视频捕捉全教程(vc+vfw)

    视频捕捉全教程(vc+vfw) 目 录 一. 视频捕获快速入门 二.基本的捕获设置 1.设置捕获速度: 2.设置终止捕获 3.捕获的时间限制 三.关于捕获窗口 1.创建一个AVICAP捕获窗口 2.将 ...

  5. android 视频投屏,USB视频投屏

    USB视频投屏是一款非常好用的手机投屏软件,嫌手机屏幕太小,那就利用这款软件投屏到电视上吧.屏幕大,而且很清爽,画质清晰,一览无余.带给你不一样的观看感受.这款软件支持的类型也很多,不管是平板还是手机 ...

  6. [转]视频捕捉全教程(vc+vfw)

    目 录 一. 视频捕获快速入门 二.基本的捕获设置 1.设置捕获速度: 2.设置终止捕获 3.捕获的时间限制 三.关于捕获窗口 1.创建一个AVICAP捕获窗口 2.将一个捕获窗口连接至捕获设备 3. ...

  7. 视频捕捉全教程(MFC+vfw)

    视频捕捉全教程(vc+vfw) 目 录 一. 视频捕获快速入门 二.基本的捕获设置 1.设置捕获速度: 2.设置终止捕获 3.捕获的时间限制 三.关于捕获窗口 1.创建一个AVICAP捕获窗口 2.将 ...

  8. DirectShow编程实现摄像头视频捕捉

    前言 DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布. DirectShow为多媒体流的捕捉和回放提供了强有力的支持.用Direc ...

  9. Visual C++编程实现摄像头视频捕捉

    摘要:本文主要讲述用Directshow进行视频捕捉(捕捉静态图像)的编程思路,并提供针对摄像头编程的一个视频捕捉类CcaptureVideo和一个示例. 前言 DirectShow是微软公司提供的一 ...

  10. VFW---摄像头视频捕捉函数解析

    VFW---摄像头视频捕捉函数解析 #include <vfw.h> #pragma comment(lib, "Vfw32.lib") 初始化操作 1.创建捕获窗口 ...

最新文章

  1. 【Graph4NLP】阿尔伯塔大学博士毕业论文:基于图结构的自然语言处理
  2. cruzer php sandisk 闪迪u盘量产工具_SanDisk Cruzer Micro下载
  3. 用 Flask 来写个轻博客
  4. C语言再学习 -- C 预处理器
  5. 单片机数字滤波算法如何实现?(附代码)
  6. 怎么把桌面计算机隐藏文件,怎么隐藏桌面文件夹名称?隐藏桌面图标下的文字的详细教程...
  7. hive 两个没有null指定的表左关联的结果有null_Hive的优化原则
  8. LINQ能不能用系列(一)LINQ to Object 效率比对
  9. GBT19668.3-2007 电子设备机房系统工程监理规范
  10. MongoDB可视化工具Studio 3T的使用
  11. 项目中集成微信扫码登陆,绑定手机号功能
  12. matlab中欧姆怎么表示,电阻的单位为欧姆,用符号()表示。 - 问答库
  13. 智能汽车域控制器的认识
  14. 从宗教信仰看东西方文化对人的影响
  15. 2008年度回顾:决胜路由应用时代
  16. 年轻人,请听我说……
  17. kestrel java_Kestrel Web 服务器学习笔记
  18. Linux命令行修改配置(待续)
  19. zookeeper启动不了报错:java.io.IOException: No snapshot found, but there are log entries. Something is brok
  20. 服务器系统能干嘛,服务器操作系统能干嘛

热门文章

  1. C# 读取xls格式的文件
  2. mysql中date类型_MySql的日期类型datetime和timestamp
  3. 计算机产生背景和编程语言分类
  4. 907计算机专业基础与408相比,2018计算机考研专业课精选练习题(4)
  5. python金融衍生品大数据分析 pdf_Python金融衍生品大数据分析:建模、模拟、校准与对冲...
  6. MS-TS:免费微软TTS语音合成工具(一键合成导出MP3音频)
  7. Dialog顶部空白点击后无法关闭Dialog
  8. 竞业限制了不能做任何行业的相关联岗位,合理吗?
  9. 08.ThreeJs开发指南-第八章-加载外部模型
  10. Java项目集成工作流引擎解决方案及实例展示(前后分离版)