web-dev-qa-db-fra.com

Définir la webcam sur différents bus USB

mon objectif est de capturer simultanément à partir de deux webcams à une résolution de 640x480. Je rencontre actuellement un problème où mes deux webcams sont connectées à différents ports USB mais utilisent le même bus USB. Par conséquent, j'obtiens l'erreur suivante

libv4l2: erreur lors de l'activation du flux: aucun espace disponible sur le périphérique

VIDIOC_STREAMON: Il ne reste plus d’espace sur le périphérique

et pas capable de capturer des deux caméras à 640x480. J'aimerais donc pouvoir configurer chaque webcam Logitech sur un bus différent, ce qui me permettrait alors de capturer simultanément à partir des deux webcams.

C’est ce que montre la sortie de lsusb

  • Périphérique de bus 001: ID 1d6b: 0002 concentrateur racine Linux Foundation 2.0
  • Bus 002, périphérique 001: ID 1d6b: 0002 concentrateur racine Linux Foundation 2.0
  • Unité de bus 003 001: ID 1d6b: 0001 concentrateur racine Linux Foundation 1.1
  • Unité de bus 004 001: ID 1d6b: 0001 concentrateur racine Linux Foundation 1.1
  • Unité de bus 005 001: ID 1d6b: 0001 concentrateur racine Linux Foundation 1.1
  • Unité de bus 006 001: ID 1d6b: 0001 concentrateur racine Linux Foundation 1.1
  • Bus 007 périphérique 001: ID 1d6b: 0001 concentrateur racine Linux Foundation 1.1
  • Bus 008, périphérique 001: ID 1d6b: 0001 concentrateur racine Linux Foundation 1.1
  • Bus 001 Appareil 003: ID 05ca: 18b0 Ricoh Co., Ltd Webcam intégrée Sony Vaio
  • Bus 003 Dispositif 002: ID 147e: Capteur d'empreinte digitale d'empreinte digitale biométrique/bande magnétique bi-pouce Upek
  • bus 002 périphérique 012: ID 046d: 0821 Webcam C910 HD de Logitech, Inc.
  • bus 002, appareil 007: ID 046d: 0991 Logitech, Inc., QuickCam Pro pour ordinateurs portables

Est-il possible de configurer chaque webcam pour utiliser un bus USB différent?

3
lexma

La réponse est: ce n'est pas vraiment votre problème.

Certaines caméras logitech ont un bogue d'allocation de bande passante USB. Permet de voir si c'est le cas.

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

vous donnera l'allocation de bande passante actuelle de tous les hubs USB, la sortie sera quelque chose comme ceci:

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

Comme vous pouvez le constater, 35 Mbps de mon concentrateur USB3 sont actuellement attribués. Le problème avec certaines caméras logitech, cependant, est qu'elles allouent toujours autant qu'elles peuvent obtenir (480 Mbit/s), indépendamment du mode. Et donc, il s’agit d’une arithmétique simple comme 480 + 480> 900 et la seconde caméra "ne rentre tout simplement pas".

Tant que vos caméras sont connectées au même hub USB matériel, vous aurez ce problème.

N'oubliez pas non plus que la webcamera en général 128 Mbps en MJPEG et 424 Mbps en mode non compressé pour 640x480.

5
Mike