Streaming de Video en Directo con Raspberry

Streaming de Video en Directo 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.

image

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

image

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.

Streaming de Video en Directo con Raspberry

Streaming de Video en Directo con Raspberry

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:

cd /
mkdir /tmp/mjpg

Pondremos en marcha el servidor de streaming con:

mjpg_streamer -i ‘input_file.so -f /tmp/mjpg -r’

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

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

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