Streaming de Video con Raspberry

Montar un servidor de streaming de video en directo es muy sencillo, voy a explicaros como hacerlo con la ayuda de una Raspberry Pi y una simple Webcam conectable vía USB.

La cámara que he utilizado para este tutorial es una Logitech C110, una Webcam compacta, de reducido consumo, con micrófono incorporado, y que puede comprarse por algo menos de 27 euros. (He probado la Creative Live! Cam Chat Hd con idéntico resultado)

webcam

Lo primero que os recomiendo hacer es conectar la cámara a la Raspberry Pi.

La forma de ver que la cámara ha sido detectada y funciona correctamente:

lsusb

Mostrará algo como esto:

oot@RPI2-ALTEAGEEK:~# lsusb
Bus 001 Device 004: ID 046d:0829 Logitech, Inc. 
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

A continuación actualizaremos el software de nuestro sistema con:

sudo apt-get update
sudo apt-get upgrade

Seguidamente instalaremos las librerías y software necesario:

sudo apt-get install libjpeg8-dev
sudo apt-get install imagemagick
sudo apt-get install subversion

mkdir mjpg
cd mjpg

Descargaremos el software mjpg-streamer

svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer

Una vez descargado

cd mjpg-streamer

y lo compilaremos con

make ( Raspberry 1 )

ó

make -j4     (en Raspberry 2 ó 3, más rápido al usar sus 4 núcleos)

Para poner en marcha el servicio de streaming bastará con ejecutar la siguiente orden:

./mjpg_streamer -i “./input_uvc.so -d /dev/video0 -y” -o “./output_http.so -w ./www”

A partir de ese momento nuestra Raspberry empezará a capturar vídeo y a servirlo por streaming, siendo accesible desde prácticamente cualquier navegador accediendo a la dirección IP del equipo servidor y el puerto 8080, en mi caso http://192.168.2.20:8080

Os aparecerá la siguiente página

captura-de-pantalla-2016-11-05-a-las-17-34-39

En el menú lateral nos aparecen varios apartados desde los que se nos explicará como tener acceso al contenido a través de varias vías o incluso como incrustar el video en nuestra propia página web.

A continuación un ejemplo de mi webcam mostrando en directo la Raspberry Pi en la que corre alteageek.homelinux.org y su servidor stratum 1.

Existe también la opción de hacer algo parecido usando la cámara de Raspberry

raspicam

Crearemos un directorio nuevo, en el que se irán guardando los fotogramas capturados por la Pi cam:

mkdir /tmp/streaming

Daremos orden a nuestra Pi Cam de hacer una fotografía cada medio segundo:

raspistill –nopreview -tl 500 -t 999999 -vf -w 960 -h 720 -o /tmp/streaming/test.jpg -n -q 50&

Y pondremos en marcha el servidor de streaming con:

mjpg_streamer -i “input_file.so -f /tmp/streaming -n test.jpg” -o “output_http.so -w /usr/local/www”

 

Podría profundizar más en los parámetros que podemos utilizar tanto con mjpg como en raspistill pero he preferido no hacerlo para no extenderme demasiado y hacer mucho más legible este tutorial. Si os quedáis bloqueados en cualquier paso y necesitáis cualquier tipo de ayuda no dudéis en contactarme.

Salu2 y hasta el próximo post

Santi

Esta entrada fue publicada en Raspberry Pi y etiquetada , , , , , , , , , , , , , , , . Guarda el enlace permanente.

6 respuestas a Streaming de Video con Raspberry

  1. jograci dijo:

    Hola, me puedes indicar como has incrustado la ventana de la webcam dentro la página web?

    Gracias

    Me gusta

    • elalbir28 dijo:

      Claro, es sencillo, de hecho si vais a la página de prueba accesible desde vuestra red local desde http://ipdemáquina:8080 el propio software os muestra una página de prueba con varias opciones, en la que además se indica el código a incrustar dependiendo del tipo de foto/video/vlc/java..

      Un ejemplo (falta añadir los símbolos menor/mayor al principio y final):

      img class=”aligncenter” src=”http://direcciónweb:8080/?action=stream” width=”261″ height=”196″ /

      Me gusta

  2. Hola
    según me informe, este codigo:Daremos orden a nuestra Pi Cam de hacer una fotografía cada medio segundo:

    raspistill –nopreview -tl 500 -t 999999 -vf -w 960 -h 720 -o /tmp/streaming/test.jpg -n -q 50&
    en la orde nopreview, tienes un guion en vez de dos menos.
    Por lo demás, muy buena página que me ha ayudado como resolver problemas en mi raspberry pi.
    Gracias y un saludo.

    Me gusta

    • elalbir28 dijo:

      Efectivamente antes del nopreview han de aparecer dos guiones seguidos, y de hecho así es como aparece en mi blog. Me temo que el error se ha producido al hacer copiar/pegar en tu equipo. Es un tipo de error bastante común, ocurre algo parecido al copiar/pegar las comillas simples (estas últimas se acaban pegando como acentos y vuelven locos a más de uno ya que a simple vista apenas se aprecia la diferencia.

      Gracias por el comentario y a tu disposición para lo que necesites.

      Me gusta

  3. gracias por tu explicacion.
    Tu blog es la pera!!!!!

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s