Configure a webcam em um barramento USB diferente

3

meu objetivo é capturar duas webcams simultaneamente a uma resolução de 640x480. No momento, estou com um problema em que minhas duas webcams estão conectadas em diferentes portas USB, mas estão usando o mesmo barramento USB. Portanto, recebo o seguinte erro

libv4l2: error turning on stream: No space left on device

VIDIOC_STREAMON: No space left on device

e incapaz de capturar de ambas as câmeras a 640x480. Portanto, gostaria de poder configurar cada webcam da Logitech em um barramento diferente, o que, acredito, permitiria que eu capturasse de ambas as webcams simultaneamente.

Isto é o que a saída de lsusb mostra

  • Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  • Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  • Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  • Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  • Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  • Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  • Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  • Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  • Bus 001 Device 003: ID 05ca:18b0 Ricoh Co., Ltd Sony Vaio Integrated Webcam
  • Bus 003 Device 002: ID 147e:1000 Upek Biometric Touchchip/Touchstrip Fingerprint Sensor
  • Bus 002 Device 012: ID 046d:0821 Logitech, Inc. HD Webcam C910
  • Bus 002 Device 007: ID 046d:0991 Logitech, Inc. QuickCam Pro for Notebooks

Existe uma maneira de configurar cada webcam para usar um barramento USB diferente?

    
por lexma 10.12.2012 / 13:04

1 resposta

5

A resposta é: não é realmente o seu problema.

Algumas câmeras logitech têm bug de alocação de largura de banda usb. Vamos ver se é esse o caso.

cat /sys/kernel/debug/usb/devices | grep "B: "

lhe dará alocação de largura de banda atual de todos os hubs usb, a saída será algo assim:

B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
B:  Alloc= 35/900 us ( 4%), #Int=  3, #Iso=  0
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0

Como você pode ver, atualmente eu tenho 35 mbps alocados do meu hub usb3. O problema com algumas câmeras logitech, porém, é que elas sempre alocarão o máximo possível (480 mbps), desconsiderando o modo. E assim, é simples aritmética como 480 + 480 > 900 e segunda câmera apenas "não vai caber".

Desde que suas câmeras estejam conectadas no mesmo hub usb de hardware, você terá esse problema.

Também tenha em mente que a webcamera geralmente aloca 128mbps em MJPEG e 424mbps em modo não comprimido por 640x480.

    
por Mike 11.01.2013 / 14:53