martes, 26 de agosto de 2025

Como ver mi webcam en toda mi red doméstica


 Tengo por vecinos unos vencejos que han anidado en la escalera del edificio. La verdad es que me gusta verlos criar a sus polluelos. Y el otro día, amanecí con el alfeizar de la ventana convertido en pista de despegue de los nuevos polluelos. Por desgracia, tenía la persiana casi bajada para evitar el sol y no quise subirla para no espantarlos.

Cuando por fin se fueron, aproveché que tengo un ordenador cerca, con una webcam que nunca se utiliza y pensé sacarla al alfeizar para no volver a perderme los vuelos. Todo muy bonito, pero solo puedo verlo en el ordenador junto a la ventana. ¿No se puede emitir lo que ve esa webcam a mi red doméstica y verlo en cualquier ordenador, móvil o tablet? ¡Pues claro que sí!

Tras dar unas cuantas vueltas por la red y con unos cuantos intentos infructuosos de emitir con VLC, al final descubrí una aplicación perfecta, mjpg-streamer que coge el contenido de la webcam, lo convierte en imágenes jpg y lo emite por la red en secuencia, para que lo puedas ver con cualquier navegador, e incluso como un streaming en VLC y similares.

Lo primero, como siempre, es instalar. No es un programa que esté en los repositorios, así que toca compilar. Pero es facilito.

Primero, instalar las dependencias.

  • sudo apt install cmake libjpeg62-turbo-dev

Para tener un poco más de orden, yo me metí en la terminal en mi carpeta de descargas y luego me baje de github el programa.

  • git clone https://github.com/jacksonliam/mjpg-streamer.git
Ahora hay que entrar en una subcarpeta recién obtenida
  • cd mjpg-streamer/mjpg-streamer-experimental

Y sin más, compilar e instalar.

  • make
  • sudo make install

Ya tenemos el programa listo, así que nos podemos lanzar con la primera prueba. Como había hecho pruebas con VLC, ya sabia que el dispositivo era /dev/video0, por lo que lo ejecuté de esta manera.

  • ./mjpg_streamer -i "input_uvc.so -d /dev/video0" -o "output_http.so -p 8080"


Y ahora en el navegador, con acceder a localhost:8080/?action=stream ya puedes ver el vídeo. Si lo quieres ver desde otro ordenador distinto, pues cambias lo de localhost por la IP del equipo anfitrión y listo.

Aquí tenía un problemita, y es que la resolución de la cámara no era la correcta y se veía mal. Toca forzar la resolución y ya de paso, el número de frames por segundo, añadiendo -r 1280x720 -f 30, con lo que el comando para lanzar el programa queda de esta forma.

  • ./mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 1280x720 -f 30" -o "output_http.so -p 8080"

Ahora ya se ve bastante mejor y puedo jugar con el número de frames y la resolución hasta que quede a mi gusto.

Si esto te suena un poco inseguro, puedes añadir un usuario y contraseña para poder acceder, añadiendo -c usuario:contraseña al final. La cosa queda tal que así.

  • ./mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 1280x720 -f 30" -o "output_http.so -p 8080 -c MiUsuario:ContraseñaSuperSegura"

Si quieres, con la misma URL que te di antes, puedes verlo en VLC accediendo a abrir ubicación de red. Y desde el navegador, con http://localhost:8080/index.html accederás a un pequeño menú de control, donde podrás ver una foto fija, el streaming, como abrirlo en un navegador con javascript, como insertarlo como un código java en tus programas… 

En definitiva, que el programa me ha gustado mucho, porque es simple, consume poco y hace exactamente lo que quiero.

Otro día más gozando del software libre.

No hay comentarios:

Publicar un comentario

prekes sodui