Nunca antes había hecho funcionar simultáneamente dos cámaras web en un mismo router. El problema no era el router, sino el bus USB; su ancho de banda no da para dos cámaras.
El HG556a tiene dos buses USB
Bus 001 Device 001: ID 1d6b:0002 Linux 5.10.161 ehci_hcd EHCI Host Controller
Bus 002 Device 001: ID 1d6b:0001 Linux 5.10.161 ohci_hcd Generic Platform OHCI controller
El bus 001 tiene dos bocas situadas a los lados del conector de alimentación. El Bus 002 sólo tiene una boca en la parte superior del router.
Enchufando una cámara a cada bus, se acabó el problema del ancho de banda.
Bus 001 Device 004: ID 054c:0155 Sony corporation EyeToy USB camera Namtai
Bus 002 Device 002: ID 054c:0155 Sony corporation EyeToy USB camera Namtai
Aunque lo del 3D parece que pasó de moda, he conectado dos cámaras EyeToy de PlayStation2 a un HG556a-B con la intención de transmitir vídeo 3D en formato side-by-side por Wi-Fi. Dado el bajísimo presupuesto (1€ cada cámara), el resultado bien se merece un post.


Las dos EyeToy fijadas a una regleta con un par de gomillas elásticas están lejos de parecerse a la Minoru 3D Webcam.
Dar soporte básico USB.Estos paquetes son imprescindibles para detectar y hacer funcionar cualquier cosa que conectemos al puerto USB
opkg update
opkg install kmod-usb-core kmod-usb2 kmod-usb-ohci kmod-usb-uhci usbutils
Instalar el driver para la EyeToy.opkg install kmod-video-gspca-core kmod-video-gspca-ov519
Instalar mjpg-streamer.opkg install mjpg-streamer-input-uvc mjpg-streamer-output-http mjpg-streamer-www-simple
Lanzar mjpg-streamer.Una única llamada a mjpg-streamer permite sacar los dos streams simultáneamente por un mismo puerto.
# acabar con cualquier instancia anterior que pudiera quedar
killall -9 mjpg_streamer
# ajustar las cámaras a la frecuencia de la red eléctrica (1 para 50Hz, 2 para 60Hz)
v4l2-ctl -d /dev/video0 --set-ctrl=power_line_frequency=1 & v4l2-ctl -d /dev/video1 --set-ctrl=power_line_frequency=1
# invocar el proceso una sola vez para las dos cámaras
mjpg_streamer -b -i "input_uvc.so -d /dev/video0 -r 640x480 -f 25" -i "input_uvc.so -d /dev/video1 -r 640x480 -f 25" -o "output_http.so -w /www/webcam -port 8080"
Visionado de los streams de vídeo.Los streams de vídeo se pueden visualizar en el navegador de Internet del PC, en las URLs
http://192.168.1.1:8080/?action=stream_0
http://192.168.1.1:8080/?action=stream_1
Supongo que se podrían mezclar los dos streams en uno con la ayuda de GStreamer, pero todavía no sé cómo hacerlo.
Interfaz web tipo "side-by-side"La interfaz se descarga en el router
cd /www
wget https://raw.githubusercontent.com/raphikWasHere/stereoCam/main/sbsCam.html
El stream de vídeo se visualiza en el PC. Con el navegador de Internet visitar la URL
http://openwrt.lan/sbsCam.htmlInterfaz web tipo anaglifoSi prefieres los anaglifos, puedes descargar la interfaz en el router
cd /www
wget https://raw.githubusercontent.com/raphikWasHere/stereoCam/main/anaglyphCam.html
y visualizar el vídeo con el navegador de Internet del PC, en la URL
http://openwrt.lan/anaglyphCam.html