Configurar una WebCam en Openwrt

webcambig

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

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 

3 comentarios en “Configurar una WebCam en Openwrt

  1. 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.

  2. 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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *