Archivo por días: 9 junio 2013

Retransmisión en tiempo real con la cámara de la Raspberry Pi

En el anterior artículo hablaba de cómo hacer un robot con el que se pueda hacer vigilancias o inspecciones. El problema que tenía era que la cámara no mostraba las imágenes en tiempo real.

Aprovechando que la fundación Raspberry Pi ha sacado a la venta la nueva cámara que se acopla al dispositivo a través de su propio puerto, he adquirido una para hacer pruebas con ella y ver si era capaz de conseguir la ansiada retransmisión (o streaming) en directo.

IMGP3104

Después de varias pruebas con vlc y el protocolo rtsp sólo había conseguido un flujo de imágenes con un retraso de 1 o 2 segundos, pero esto era insuficiente. Por suerte me encontré con este artículo que hablaba de hacerlo con netcat y mplayer. Configurando bien los parámetros se puede tener una secuencia de vídeo muy fluida, o lo que es lo mismo, streaming en tiempo real.

Primero desde el ordenador (ya sea linux, Mac OS o Windows -con este netcat-) ejecuto el siguiente comando:

Mac OS

Linux y Windows:

Es significado es que netcat escucha por el puerto 5001 y todo lo que reciba se lo pasará al mplayer por la entrada estándar. MPlayer espera una retransmisión de 60 marcos por segundo y guardará el contenido en un buffer de un mega.

Después desde la Raspberry Pi con el sistema operativo Raspbian ejecuto el siguiente comando:

El programa raspivid envía durante 1000 segundos una imágen de 640×480 píxeles volteada horizontal y verticalmente por la salida estándar y sin mostrar la previsualización. El netcat lo envía a la ip 192.168.1.37 por el puerto 5001.

El resultado es este:

Tanto el ordenador como la Raspberry PI están conectados al router y funciona bastante bien, pero para hacerlo mejor lo ideal sería conectar ambos por wifi mediante ad-hoc.