Objetivo: Instalar y configurar una WebCam en Openwrt en un router Amper ASL 26555 y realizar streaming de video por web con mjpg-streamer.
Firmware: Openwrt Chaos Calmer 15.05
Dificultad: Medio
Necesitamos: Router Amper ASL 26555
Webcam (En nuestro caso lo probaremos con 2 webcams):
– Samsung PWC-7000X (ID 0ac8:0302 Z-Star Microelectronics Corp. ZC0302 Webcam)
– Logitech QuickCam (ID 046d:089d Logitech, Inc. QuickCam E2500 series)
Software necesario: Navegador Web, cliente SSH Putty (sólo para windows)
Más información:Openwrt webcams ,Consultar cámaras soportadas UVC, Consultar cámaras soportadas GSPCA
Acceso experimentado: Acceso a instalación rápida
Dependiendo del tipo de webcam tendremos que instalar debemos cambiar el proceso de instalación:
Paso 1. Identificar tipo de webcam.
En Linux
En caso de usar Linux es fácil. Sólo tenemos que introducir la cámara en un ordenador con Linux, abrir un terminal y ejecutar el comando:
lsusb
La salida de este comando será parecida a esta aunque con más líneas:
# lsusb
Bus 001 Device 004: ID 0ac8:0302 Z-Star Microelectronics Corp. ZC0302 Webcam
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Debemos localizar el identificador de la cámara (marcado en rojo arriba) que nos servirá para averiguar qué driver instalar.
En nuestro caso el identificador es 0ac8:0302
que se corresponde con nuestra cámara Samsung .
Desde Openwrt
Desde Openwrt tenemos que acceder por ssh y ejecutar lo siguiente para dar soporte al los dispositivos usb:
opkg update
opkg install usbutils kmod-usb2 kmod-usb-core kmod-usb-ohci kmod-usb-uhci
A continuación ya podemos realizar
lsusb
El comando nos devolverá los identificadores de dispositivos conectados por usb:
root@OpenWrt:/# lsusb
Bus 001 Device 007: ID 046d:089d Logitech, Inc. QuickCam E2500 series
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
En esta ocasión hemos marcado en rojo el identificador 046d:089d
de nuestra webcam Logitech.
Paso 2. Localizar el driver necesario e instalarlo.
Lo primero es instalar el soporte para USB del openwrt:
opkg update
opkg install usbutils kmod-usb2 kmod-usb-core kmod-usb-ohci kmod-usb-uhci
Una vez apuntado el identificador del paso 1 de nuestra webcam debemos proceder de la siguiente manera:
En caso de que tu identificador lo encuentres en esta página: Consultar cámaras soportadas UVC
La instalación será:
opkg update
opkg install kmod-video-uvc
En caso de que tu identificador lo encuentres en esta página: Consultar cámaras soportadas GSPCA
Nuestro ID de la webcam Logitech lo hemos encontrado aquí:
...
vc032x 046d:0896 Logitech Orbicam
vc032x 046d:0897 Logitech QuickCam for Dell notebooks
zc3xx 046d:089d Logitech QuickCam E2500
zc3xx 046d:08a0 Logitech QC IM
zc3xx 046d:08a1 Logitech QC IM 0x08A1 +sound
...
y el de la Samsung también:
...
jeilinj 0979:0280 Sakar 57379
jeilinj 0979:0280 Sportscam DV15
zc3xx 0ac8:0302 Z-star Vimicro zc0302
vc032x 0ac8:0321 Vimicro generic vc0321
vc032x 0ac8:0323 Vimicro Vc0323
...
Nos fijaremos en lo que hemos puesto de color verde a la izquierda.
Debes sustituir las XXXX por lo verde en los siguientes comandos:
opkg update
opkg install kmod-video-gspca-XXXX
En nuestro caso nosotros para la cámara logitech pondremos:
opkg update
opkg install kmod-video-gspca-zc3xx
y para la Samsung:
opkg update
opkg install kmod-video-gspca-zc3xx
Da la casualidad de que las dos cámaras utilizan los mismos paquetes.
Una vez instalados los paquetes podemos conectar las cámaras y serán reconocidas por el sistema.
Para testear si las ha reconocido podemos ver si el dispositivo existe con el siguiente comando:
ls /dev/video0
si nos devuelve
/dev/video0
es que se la ha reconocido.
En caso contrario reiniciaremos el router con la webcam conectada y volvemos a poner el comando
ls /dev/video0
Paso 3. Instalar y configurar mjpg-streamer.
Con esta aplicación podremos acceder al router con un navegador y podremos ver la webcam en funcionamiento.
Pondremos en la consola lo siguiente para instalarlo:
opkg update; opkg install mjpg-streamer
Atención: En versiones más actuales de Openwrt la instalación es: opkg install mjpg-streamer-www
Incluso hay otra versión más reducida que no he probado que es: mjpg-streamer-www-simple
Además puede que se necesite instalar los paquetes: mjpg-streamer-input-uvc y mjpg-streamer-output-http
A partir de aquí podemos encontrarnos con problemas ya que depende de las características de la webcam el que tengamos que poner unos parámetros u otros.
En la cámara Samsung lo probamos de la siguiente manera:
mjpg_streamer -i "input_uvc.so -d /dev/video0" -o "output_http.so -w /www/webcam -port 8080"
Con esta instrucción estamos enviando la salida del dispositivo /dev/video0 y que de servicio mediante el protocolo http en el puerto 8080 de nuestro router.
Nos vamos al navegador y ponemos la dirección ip de nuestro router en el navegador accediendo al puerto 8080.
http://192.168.1.1:8080
En caso de que uses otra ip deberás poner:
http://<ip_del_router>:8080
En la cámara Logitech funciona con lo siguiente:
mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 640x472 -f 10" -o "output_http.so -w /www/webcam -port 8080
"
Por defecto utiliza la resolucion de 640×480 cosa que la cámara no soporta. Se le ha añadido -r 640×472. También podemos poner el número de frames por segundo que quiere uno que emita. En este caso hemos puesto 10 frames por segundo con ese añadido de -f 10.
Después de un rato de funcionamiento, la cámara Logitech pierde brillo y oscurece la imagen. ¿Será fallo del driver?, ¿fallo de configuración?, ¿fallo de la cámara?, ¿será que se satura el router?. En nuestro caso tenemos que investigar un poco más el porqué se produce dicho fallo.
Paso 4. Dejarlo funcionando de manera automática nada más arrancar el router.
Hemos probado que funciona y ahora lo configuraremos para que arranque nada más encender el router.
Vamos a utilizar como editor de tetxo el nano ya que el vi puede ser un poco engorroso para el que no está acostumbrado.
Instalamos nano:
opkg install nano
Accedemos a la configuración del servicio mjpg_stramer y editamos el fichero de configuración:
nano /etc/config/mjpg-streamer
En el archivo configuramos los parámetros necesarios para nuestra cámara.
En el caso de la cámara samsung usaremos la siguiente configuración:
config mjpg-streamer 'core' option enabled '1' //siempre poner a 1 para que arranque option input 'uvc' option output 'http' option device '/dev/video0' option resolution '640x480' //resolución option yuv '0' //poner a 1 si camara sporta espacio de color YUV option quality '100' // calidad de la imagen al 100% option fps '30' // frames por segundo option led 'auto' // 0,1,auto enciende o apaga el led de la webcam option www '/www/webcam' option port '8080' // puerto de escucha option username 'openwrt' //usuario de acceso option password 'openwrt' //password de acceso
Le hemos dejado puesto usuario y password para que no acceda cualquiera.
En el caso de la cámara Logitech le bajaremos la resolución con esta configuración:
config mjpg-streamer 'core' option enabled '1' option input 'uvc' option output 'http' option device '/dev/video0' option resolution '640x472' option yuv '0' option quality '100' option fps '30' option led 'auto' option www '/www/webcam' option port '8080' option username 'openwrt' option password 'openwrt'
Para guardar el documento usaremos las teclas CTRL + O y a continuación CTRL + X.
Una vez guardada la configuración probaremos si funciona arrancando el servicio con el siguiente comando:
/etc/init.d/mjpg-streamer start
Accedemos a la cámara poniendo en el navegador
http://<ip_del_router>:8080
en nuestro caso
http://192.168.1.1:8080
Si vemos que funciona ya podemos finalizar y dejar el servicio activado al arrancar con el siguiente comando:
/etc/init.d/mjpg-streamer enable
Resumen para gente más experimentada:
En consola del openwrt instalamos soporte USB:
opkg update; opkg install usbutils kmod-usb2 kmod-usb-core kmod-usb-ohci kmod-usb-uhci
Averiguamos el ID de la webcam lsusb
En caso de que el identificador aquí: Consultar cámaras soportadas UVC
La instalación será: opkg update; opkg install kmod-video-uvc
En caso de que el identificador aquí: Consultar cámaras soportadas GSPCA
La instalación será sutituyendo XXXX:
opkg update; opkg install mod-video-gspca-XXXX
Probamos si la reconoce con comando en caso contrario reiniciamos y vemos si la ha reconocido:
ls /dev/video0 Instalamos mjpg-streamer:
opkg update; opkg install mjpg-streamer
Probamos el streaming con comando:
mjpg_streamer -i "input_uvc.so -d /dev/video0" -o "output_http.so -w /www/webcam -port 8080"
Editamos el fichero de configuración para que arranque como un servicio:
nano /etc/config/mjpg-streamer
Ponemos a 1 el option enabled y configuramos parámetros según modelo de la cámara:
config mjpg-streamer 'core'
option enabled '1' //siempre poner a 1 para que arranque option input 'uvc'
option output 'http'
option device '/dev/video0'
option resolution '640x480' //resolución option yuv '0' //poner a 1 si camara sporta espacio de color YUV
option quality '100' // calidad de la imagen al 100%
option fps '30' // frames por segundo
option led 'auto' // 0,1,auto enciende o apaga el led de la webcam
option www '/www/webcam'
option port '8080' // puerto de escucha
option username 'openwrt' //usuario de acceso
option password 'openwrt' //password de acceso
Arrancamos el servicio con:
/etc/init.d/mjpg-streamer start
y arrancará el servicio al encender el router así:
/etc/init.d/mjpg-streamer enable
Buenas tardes, muy buenos post todos, muchas gracias por compartir estos conocimientos. La verdad es que estos post le dan una segunda vida a los routers y muy díficil encontrar una página web donde se explique tan bien.
Llevo mucho tiempo buscando como hacer un Portal Cautivo en un router Huawei HG556a, siempre que lo he intentado acabe quemado y lo dejaba. Si me pudieran ayudar os lo agradecería mucho. Saludos.
Buenas admin, buen tutorial aunque está caído el link “Consultar cámaras soportadas GSPCA”. He buscado por internet y no logro encontrar uno que también vaya por mac. Solo por marca…
Le agradecería que lo revise. Un saludo, tu alumno Christian.
Solucionado. Un saludo.
HOla, antes que todos muchas gracias por esta guía, me ha sido muy útil. Me gustaría saber si hay manera de configurar el brillo de la cámara, ya que me funcionó todo, solo que la cámara el momento de filmar funciona con muy poco brillo y solo capta las cosas que tienen mucha luz. Muchas gracias.
Mira en este enlace: https://wiki.openwrt.org/doc/howto/webcam
Donde dice: “Controlling exposure, color balance, etc.”, habla de instalar uvcdynctrl.
No sé si la webcam estará soportada pero puedes intentarlo.
Hola admin.
Soy nuevo en el tema openwrt .
Nada mas funciona con ese router Amper ASL 26555 o puedo utilizar otro? como lo hago? que programa debo utilizar para windows?
tengo 2 router. 1) es un dlink DIR-514 el que utilizo para internet y quiero conectar inalambricamente el 2) router un tp-link tl-mr3020 a internet por medio del otro y que me detecte una camara web para asi poder ver la misma por internet. no se si me explique bien.
nota: tambien quiero saber como logro que el router detecte la webcam
Admin, ha funcionado de maravilla en un HG556a, gracias por una buena explicación.
Hi, is possible to stream audio from QuickCam E2500? Video is working fine on WL500G Premum, thx for manual 🙂
This is only for video. Thanks.
No se puede hacer lo mismo en un deco Linux Enigma2 con OpenAtv? Gracias
Pues no lo sé. Este tutorial es para Openwrt. Si ese Deco te permite instalarle paquetes y acceder por terminal probablemente sí.