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.

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

  1. Stevenmn

    Muy buen proyecto.Te queria preguntar algo, si conoces alguna forma de transmitir video, pero no enviandolo al pc sino a un celular android(una app) ?.Gracias

    Responder
      1. Stevenmn

        Gracias por responder. Lo que pasa es que estoy construyendo un hexapodo y quiero que tenga una camara y estoy haciendo una app para controlar su movimiento(por bluetooth), pero lo que queria era dentro de la misma app poder ver video en tiempo real. No he visto nada asi y en realidad no se si se pueda.

        Me gustaria una opinion tuya , y gracias.

        Responder
        1. admin Autor

          Casualmente yo también intenté algo así, pero no lo he logrado todavía. En el artículo envío la salida de mplayer por netcat. En Android habría que programar un socket que fuese servidor y que recuperase el stream enviado y lo procesase mediante la librería MediaCodec. Este es un buen sitio para empezar http://bigflake.com/mediacodec/

          Responder
          1. Stevenmn

            Oh que bien!, bueno, pues te cuento, despues de mucha investigacion en ingles(principalmente) veo que es imposible o totalmente impractico enviar video por bluetooth debido a su velocidad.

            Por ahora lo que pense, fue entonces en wifi, conseguir una camara y con raspberry montar un server(verla por ip localmente) y pues en mi app de android para controlar el hexapodo , crear un boton que me abra el browser con el streaming de la camara.

  2. carlos lozano

    hola que tal oye disculpa, la raspberry la puedes utilizar para hacer todo ese proceso pero sin utilizar la pc, mejor dicho, despues del proceso de configuración, todo ese trabajo se puede realizar con la raspberry desconectada de la pc. gracias

    Responder
  3. Luis Alberto Aguilar

    Que tal buenos dias que versión de mplayer utilizas yo he instalado la versión extended el problema que tengo es que al ejecutar el comando
    nc -l 5001 | mplayer -fps 60 -cache 1024 –
    me lanza un mensaje de error “-bash: mplayer: command not found” imagino que puede ser por que debemos configurar algun tipo de variable de entorno?

    Responder
  4. Adrian

    Hola buenas se podría hacer una retransmisión en vivo pero directo a una pantalla LCD, lo digo para usarla de gafas de visión nocturna solo con los 3 elementos indispensables cámara Raspberry y pantalla.

    Responder
  5. Adrian

    Holaaa se podría hacer unas gafas de visión nocturna en tiempo real, no hace falta que grabe solo que retransmita en tiempo real a una pantalla que irá frente a los ojos. En teoría encender el Raspberry y directamente que empieze a emitir el vídeo de la cámara IR

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *