Está en la página 1de 11

VIDEO STREAMING LIVE!

CON RASPBERRY PI Y PLAYSTATION


EYE TOY

Hola a todos! Hoy vamos a aprender cmo realizar un servicio de video streaming en
directo gracias a nuestra Raspberry Pi. Para ello nos vamos a ayudar de una Webcam USB
conectada a la Raspberry Pi y un software que se encargar de recoger el vdeo emitido
por la cmara. En la ltima parte del tutorial se detallar la posibilidad de acceder a
nuestra emisin desde Internet (no slo de modo local) para poder ver la emisin desde el
mvil, tablet u otro ordenador.
Para ello, necesitaremos lo siguiente:

1x RaspberryPi con Raspbian (aqu un tutorial de cmo instalar Raspbian)

1x Webcam USB (En este caso se ha utilizado una Playstation Eye Toy)

Programa MJPG-Streamer

Conexin a Internet
Recomendacin!

Lo primero de todo ser actualizar nuestra distribucin Raspbian instalada en la


RaspberryPi. Para ello ejecutaremos los siguientes comandos desde una terminal:
Aviso! La ejecucin de los dos primeros comandos puede demorar bastante. No seis
impacientes. El ltimocomando reiniciar nuestra RaspberryPi.

1
2
3

$ sudo apt-get update


$ sudo apt-get upgrade
$ sudo reboot

Comencemos a trabajar!
Conectividad de la Webcam:
Una vez actualizada la RaspberryPi, conectaremos nuestra Webcam USB a uno de los dos
puertos USB disponibles. Para comprobar que la cmara ha sido detectada, ejecutaremos
los siguientes comandos desde una terminal:

$ ls -l /dev/video*

Aviso! Si no te aparece /dev/video0 en el listado, significa que tu Webcam no ha sido


detectada, o bien, no es compatible. Hay algunas webcams que es necesario conectarlas
mediante un HUB USB con alimentacin externa, ya que consumen ms corriente de lo
que la Raspberry Pi suministra.

$ lsusb

Con el ltimo comando obtendremos informacin de la Webcam que hemos conectado:


aparecer en una lnea Bus, Device, ID y nombre de la Webcam que ha sido detectada por
el sistema.

Instalacin de libreras y utilidades necesarias:


Una vez hayamos comprobado que la Webcam ha sido detectada correctamente,
procederemos

la

instalacin

de

las

siguientes

libreras

que

necesita

la

herramienta MJPG-Streamer y la utilidad subversion que nos servir ms adelante para


descargarla. Para ello ejecutamos los siguientes comandos desde una terminal:

1
2
3

$ sudo apt-get install libjpeg8-dev


$ sudo apt-get install imagemagick
$ sudo apt-get install subversion

Descarga, compilacin y ejecucin de MJPG-Streamer:


Instaladas las libreras, el siguiente paso es descargar la herramienta necesaria para
realizar el streaming de vdeo que captura nuestra Webcam. Para empezar, crearemos un
nuevo directorio para trabajar ms cmodamente. Para ello, ejecutamos los siguientes
comandos desde una terminal:

1
2

$ mkdir mjpg
$ cd mjpg

Con el segundo comando hemos accedido al directorio que acabamos de crear (mjpg) , el
cual utilizaremos para alojar la herramienta MJPG-Streamer que vamos a descargar. Para
obtener dicha herramienta, situados en el directorio creado anteriormente, lo
descargaremos mediante la ejecucin del siguiente comando:

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

Se nos habr creado un nuevo directorio con el nombre mjpg-streamer . Dentro se


encontrarn los archivos necesarios para realizar su compilacin, la cual vamos a realizar a
continuacin ejecutando el siguiente comando:

$ make

La compilacin generar los archivos necesarios para ejecutar la herramienta MJPGStreamer. Ya tenemos lista la herramienta para poder ser ejecutada, pero antes vamos a
explicar en qu consiste esta herramienta.
Qu es MJPG-Streamer?
MJPG-Streamer es un aplicacin que se ejecuta por lnea de comandos. A grandes rasgos,
se encarga de obtenerframes JPG (imgenes) capturadas desde una cmara compatible y
transmitirlas como M-JPEG (secuencia de vdeo) mediante el protocolo HTTP para poder
visualizarlo en navegadores, VLC y otras herramientas.
Cmo funciona?
Su funcionamiento se basa en unos plugins de entrada y salida. Es decir, un plugin
(de entrada) copia las imgenes JPEG a un directorio de acceso global, mientras que otro
plugin (de salida) procesa las imgenes, sirvindolas como un simple fichero de imagen, o
bien, emite las mismas de acuerdo a los estndares MPG existentes.
Por lo tanto, con la compilacin anterior, lo que hemos hecho ha sido generar
stos plugins. Vamos a explicar en qu consisten:

mjpg_streamer: Herramienta de lnea de comandos, que copia las imgenes JPG de un


plugin de entrada, a uno o ms plugins de salida.

input_uvc.so: Captura los frames JPG de una Webcam conectada. (A una resolucin
mxima de 960720 pxels y un elevado frame rate (>=15fps), con poca carga sobre la
CPU).

output_http.so: Servidor Web HTTP 1.0. Sirve una nica imagen JPG o bien las emite de
acuerdo al estndar M-JPEG.

Como se ha explicado anteriormente, MJPG-Streamer funciona bajo lnea de comandos,


por lo que para iniciarla deberemos ejecutar el siguiente comando:
IMPORTANTE! Asegurarse de que la Webcam fue detectada correctamente como se
explic y que est conectada a la Raspberry Pi.

$ ./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -y" -o "./output_http.so -w ./www"

Ejecutada la herramienta, debera de aparecernos lo siguiente, como se observa en la


imagen:

Como observaris, han aparecido una serie de errores, pero no son importantes, ya que la
herramienta se est ejecutando correctamente, y para prueba de ello, vamos a acceder a
ella!

Cmo accedemos a la herramienta para ver nuestro vdeo streaming en directo?


Antes de nada, vamos a detenernos un momento a leer los mensajes que aparecen en la
terminal:

1
2
3
4
5
6
7
8
9
10

MJPG Streamer Version: svn rev:


i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: 5
i: Format............: YUV
i: JPEG Quality......: 80
o: www-folder-path...: ./www/
o: HTTP TCP port.....: 8080
o: username:password.: disabled
o: commands..........: enabled

Como se puede observar, los mensajes son bastantes descriptivos:


1. Se nos notifica de que se est usando el dispositivo /dev/video0 (nuestra Webcam
conectada!)
2. La resolucin con la que se est emitiendo vdeo: 640480
3. Se estn tomando imgenes a una razn de: 5 FPS
4. El formato de paleta de colores: YUV
5. Calidad de las imgenes JPEG: 80%
6. Directorio de la aplicacin Web de la herramienta: ./www
7. Puerto TCP donde se emite el vdeo: 8080
8. Usuario:contrasea (por si se quiere restingir el acceso): disabled
9. Comandos: enabled
De todos ellos nos quedamos con el ms importante, el 8. : La aplicacin Web de la
herramienta se est ejecutando en el puerto 8080.
IP_DE_NUESTRA_RASPBERRYPI Si no sabes la direccin que tiene tu RaspberryPI, lo ms
fcil es ejecutar el comando ifconfig en una terminal y quedarse con la direccin que
aparece despus de inet addr:
A continuacin abriremos un navegador, y accederemos a la siguiente direccin:

http://IP_DE_NUESTRA_RASPBERRYPI:8080

Y por fintachn! Hemos accedido a la aplicacin web de la herramienta MJPGStreamer. El aspecto que presenta su dashboard es el que se puede observar en la
siguiente imagen:

Ahora podremos acceder a las distintas opciones de las que dispone la aplicacin web:

1. HOME: Pgina de inicio.


2. STATIC: Ejemplo de pgina web con una imagen esttica capturada por la Webcam.
3. STREAM: Ejemplo de pgina web con la emisin del vdeo en directo.
4. JAVA: Ejemplo de emisin de vdeo realizado con un applet de Java.
5. JAVASCRIPT: Ejemplo de emisin de vdeo realizado con Javascript.
6. VideoLAN: Ejemplo para obtener la URL del vdeo emitido en directo y poder abrirlo
mediante el programa VLC.
7. CONTROL: Se abrir una nueva ventana (como aparece en la siguiente imagen) que nos
permitir modificar parmetros como brillo, saturacin, contraste

Y hasta aqu, todos los pasos necesarios para hacer vdeo streaming en directo con nuestra
Raspberry Pi
+ Informacin sobre MJPG-Streamer, en su Web Oficial
Un momento! Pero Y si quisiramos tener acceso a la emisin de vdeo en directo
desde fuera de casa? Cmo lo logramos?
Para ello, recomiendo seguir el tutorial donde se explica cmo utilizar el servicio NO-IP, el
cual nos permitir crear un dominio virtual y asignarlo a una direccin IP donde est
conectada nuestra RaspberryPi.
TUTORIAL RASPBERRY PI 7. ESCRITORIO REMOTO VNC + NO-IP
Yo mismo segu el tutorial logrando configurar un dominio virtual, gracias al cual me
permite seguir la emisin en directo desde Internet.
Os adjunto una imagen, a modo de ejemplo, de la configuracin del programa VLC para
grabar (o acceder a) vuestra emisin.

Y hasta aqu, todo por hoy amigos! Espero os haya gustado ste tutorial y si tenis
cualquier tipo de problemas, no dudis en comentarlos aqu mismo, os intentar ayudar
en lo posible a solventarlos.

También podría gustarte