16 votos

¿Por qué solo funcionan 2 cámaras USB mientras que 4 cámaras USB no pueden transmitir al mismo tiempo?

Tengo 4 cámaras USB 2.0 de 480p. ¿Alguna idea de por qué no puedo transmitir 4 feeds a la vez?

Estoy usando un concentrador USB VL817 para todas las cámaras. No parece ser un problema de ancho de banda, ya que el tamaño promedio de fotograma para una cámara es de 600kb a 30fps.

¿Alguna idea de por qué se limita a 2 cámaras?

captura de pantalla

cámara

37voto

Simon Puntos 165

Creo, según la información que has proporcionado, que estás excediendo el ancho de banda de un solo bus USB 2.0 cuando intentas usar una tercera cámara de este tipo. Aquí está el cálculo:

480p implica 640 * 480 = 307,200 píxeles por fotograma.

A 8 bits por canal de color, normalmente serían 24 bits por píxel, por lo que 307,200 * 24 = 7,372,800 bits por fotograma.

Pero dijiste en los comentarios que tus cámaras están utilizando YUY2 o YUV2, lo que significa que están utilizando submuestreo de croma 4:2:2 para reducir el ancho de banda descartando algunos datos de color. Explicar el submuestreo de croma está fuera del alcance de esta respuesta, pero mis cálculos indican que el modo de submuestreo 4:2:2 reduce los bits por píxel en un tercio, por lo que cada fotograma sería de alrededor de 4,915,200 bits.

Hay 8,192 bits por kilobyte (o, más precisamente, por KibiByte), por lo que 4,915,200 / 8,192 = 600 KiB. Creo que esto concuerda con tu observación de que cada fotograma era "600kb"; creo que donde sea que obtuviste ese número 600 para el tamaño del fotograma, estaba informando en KibiBytes, no en kilobits.

Por lo tanto, todo esto hasta ahora me indica que tus cámaras están enviando un flujo de video sin comprimir 480p30, 4:2:2 (YUY2/YUV2).

Entonces, cada fotograma es de 4,915,200 bits, * 30 fps = 147,456,000 bits por segundo. ~147 Mbps entra dentro de la tasa de señalización cruda de 480 Mbps de USB 2.0 antes de la sobrecarga.

Una segunda cámara duplicaría el uso total del ancho de banda en el bus USB, a 294,912,000 bits por segundo. Eso parece que aún debería caber dentro de la velocidad del bus USB 2.0.

Una tercera cámara llevaría el uso total del ancho de banda del bus a 442,368,000 bits por segundo, lo cual parece estar muy cerca de 480,000,000 para caber, dada la reputación de USB por tener mucha sobrecarga. Si la sobrecarga de USB alcanza el 8% o más, el flujo de esa tercera cámara no cabrá.

Como señaló el compañero usuario regular de SuperUser @sawdust en los comentarios, la captura de pantalla del árbol de dispositivos USB muestra que tu PC tiene dos controladores de host USB (dos buses USB separados), por lo que bien podrías resolver este problema averiguando qué puertos USB están conectados a qué controlador de host, y conectando dos cámaras a cada controlador, en lugar de intentar poner las cuatro cámaras en un solo bus USB 2.0.

11voto

1NN Puntos 197

Su concentrador USB VL817 utiliza un concentrador USB multi-tt USB 2.0. Cito del último enlace:

Sobre los puertos del concentrador USB 2.0, ... el enlace ascendente en cualquiera de nuestros puertos del concentrador USB 2.0 es de 480 Mbps. El ancho de banda agregado de todos los puertos del concentrador no puede exceder los 480 Mbps en ningún momento dado.

Dadas las estimaciones que otros han proporcionado, tu concentrador USB puede admitir el ancho de banda de un máximo de 2 de tus cámaras, antes de que esos 480 Mbps estén saturados.

Ver también esta otra respuesta de SuperUser, que básicamente dice que te encontrarás con el mismo problema en cualquier concentrador USB. El USB 2.0 es un protocolo separado del protocolo USB 3.0 / 3.1 (y es diferente del protocolo USB 4.0). Esto significa que el controlador USB de tu PC establece una conexión USB 2.0 a cualquier concentrador USB que es independiente de la conexión USB 3.0. Por lo tanto, para cualquier concentrador la suma de todas las conexiones USB 2.0 no puede exceder los 480 Mbps.

Para resolver este cuello de botella, deberás conectar dos de tus cámaras a un concentrador diferente, o conectarlas directamente a tu PC, asegurándote de que no haya más de 2 cámaras por concentrador root USB: según el árbol USB que proporcionas, tu PC tiene dos concentradores root USB. Puedes probar y ver a qué puertos deberás conectar las cámaras web.

5voto

plugwash Puntos 327

El problema clave es que un concentrador USB 3 normal* en realidad son dos concentradores en una caja. El concentrador para periféricos de alta/mediana/baja velocidad es completamente diferente al concentrador para periféricos de súper velocidad.

Entonces, si todos tus periféricos son USB 2, un concentrador USB 3 no te ayuda a obtener más ancho de banda. Para obtener más ancho de banda, generalmente necesitas colocar los dispositivos en controladores host USB separados.

Si tienes una computadora de escritorio, entonces la forma más sencilla de hacer eso probablemente sea usar una tarjeta PCI o PCIe para algunas cámaras, si estás en una computadora portátil las cosas pueden ser más complicadas.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X