【问题标题】:Two webcams on one usb 2.0 hub - works in windows but not linux一个 USB 2.0 集线器上的两个网络摄像头 - 适用于 windows 但不适用于 linux
【发布时间】:2011-07-14 02:19:26
【问题描述】:

下面的 openCV 代码从两个摄像头同时抓取图像。它在 Windows 中运行良好,摄像头都连接到一个 USB 2.0 集线器。当我在 linux 中尝试相同的代码时,它一次只有一个摄像头的足够带宽。我也试过用 guvcview 一次查看两个流,同样的问题。我需要的是一种强制网络摄像头协同工作的方法,可能是通过设置驱动程序请求的带宽量。

capture = cv.CaptureFromCAM(0)
capture2 = cv.CaptureFromCAM(1)

while True: 
    frame = cv.QueryFrame(capture)
    frame2 = cv.QueryFrame(capture2)
    cv.ShowImage("w1", frame)
    cv.ShowImage("w2", frame2)    
    if cv.WaitKey(10) != -1:
        break

【问题讨论】:

  • 这是 Windows 还是 Linux 的问题?您在问题陈述中的每个实例中都提到了 Linux。我想你打错字了。
  • 哇!是的,标题是对的。感谢您指出这一点。

标签: linux opencv usb webcam v4l2


【解决方案1】:

我也遇到了网络摄像头 (LifeCam Cinema) 的 USB 带宽问题,并通过使用 uvcvideo 驱动程序的 FIX_BANDWIDTH quirk 解决了这个问题。有关使用 quirk 的详细信息,请参阅此 answer

没有奇怪,对于我尝试过的一些 USB 主机控制器,两个 LifeCam 工作(每个控制器);对于其他人,只有一个。这是我的一台机器视觉机器中的控制器:

uli@KL04:~$ lspci | grep USB
00:1a.0 USB controller: Intel Corporation C600/X79 series chipset USB2 Enhanced Host Controller #2 (rev 06)
00:1d.0 USB controller: Intel Corporation C600/X79 series chipset USB2 Enhanced Host Controller #1 (rev 06)
03:00.0 USB controller: VIA Technologies, Inc. Device 3483 (rev 01)
0a:00.0 USB controller: ASMedia Technology Inc. Device 1142
0b:00.0 USB controller: ASMedia Technology Inc. Device 1142

(Intel 和 ASMedia 控制器在主板上,VIA 在 PCIe 卡上。)毫无疑问,每个 ASMedia 控制器只支持一个 LifeCam。

【讨论】:

    【解决方案2】:

    问题可能在于相机在其 Windows 驱动程序中运行某种视频压缩,而它们可能在 Linux 中以更高的数据速率运行未压缩。

    如果是这种情况,那么您可能需要将它们放在不同的 USB 总线上,以使它们在 Linux 中同时工作。这可能需要您将 PCI 或 PCIe USB 卡添加到您的系统 - 许多主板只实现一个 USB2.0 高速总线。

    【讨论】:

    • 这是一个机器人应用程序,我也可以使用旧笔记本电脑。它现在运行的是windows server 2003,但是如果我把XP装上它,它应该与两个摄像头一起工作吗?根据一个名为 lsusb 的程序,它还有一个 2.0 集线器。
    【解决方案3】:

    您能否将网络摄像头配置为使用较低的分辨率或帧速率,从而减少带宽?

    【讨论】:

    • 我尝试在 opencv 中这样做(这样做的功能已损坏),并使用其他应用程序以较低的分辨率/帧速率同时查看两个摄像机。两者都不起作用。因此,我认为这可能是驱动程序级别的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    相关资源
    最近更新 更多