Две веб-камеры на одном концентраторе USB 2.0 - работает в Windows, но не Linux - PullRequest
1 голос
/ 14 июля 2011

Приведенный ниже код 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

Ответы [ 3 ]

1 голос
/ 15 января 2016

У меня также была проблема пропускной способности USB с веб-камерами (LifeCam Cinema), и я решил ее с помощью FIX_BANDWIDTH quirk драйвера uvcvideo.См. Этот ответ для получения подробной информации об использовании причуд.

Без причуд, для некоторых хост-контроллеров USB, которые я пробовал, работали две LifeCams (на контроллер);для других только один.Вот контроллеры на одном из моих машин машинного зрения:

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.

1 голос
/ 14 июля 2011

Проблема может заключаться в том, что камеры выполняют своего рода сжатие видео в своих драйверах Windows, в то время как они могут работать без сжатия в Linux - с более высокой скоростью передачи данных.

Если это так, то вам может потребоваться установить их на разные шины USB , чтобы они работали одновременно в Linux. Для этого может потребоваться добавить в систему карту USB или PCIe USB - многие материнские платы поддерживают только одну высокоскоростную шину USB2.0.

0 голосов
/ 14 июля 2011

Можно ли настроить веб-камеры на использование более низкого разрешения или частоты кадров и, следовательно, меньшей пропускной способности?

...