Wireless Video de Raspberry Pi a PC Un Poco de Java

download Wireless Video de Raspberry Pi a PC Un Poco de Java

of 19

description

Wireless Video de Raspberry Pi a PC Un Poco de Java

Transcript of Wireless Video de Raspberry Pi a PC Un Poco de Java

  • Buscar

    Un poco de JavaLas experiencias de un grupo de amigos con esas tecnologas que nos hacen disfrutar (y sufrir) de nuestro trabajo!!!

    Wireless Video de Raspberry Pi a PCPosted by Miguel Garvia

    Vamos a documentar como hacer una transmisin de video con la Camara Raspberry Pi a un PC. Comoobjetivo adicional nos proponemos crear un dispositivo autnomo que transmita imgenes mediante wifi envivo, similar a una cmara wireless de seguridad.

    Veremos que la Raspberry Pi camera board es un modulo diseado para ser integrado con facilidad en el Pi.

    La cmara posee una relacin calidad-precio notable:

    Tamao 25mm x 20mm x 9mmPeso 3gBajo consumo5 Megapixels2592 x 1944 pixeles de imgenes estticasSoporta video 1080p30, 720p60 y 640x480p60/90Cuesta menos de 25 Euros

  • Contamos con un Raspberry Pi B 512K de memoria, ya nos hemos aproximado varias veces a micro placas

    https://unpocodejava.wordpress.com/2013/07/05/java-en-un-raspberry-pi-desde-cero-2/https://unpocodejava.wordpress.com/?s=raspberry+pi

    Y tenemos un avance de los esfuerzos por tener una distribucin de Java en un Pi:

    https://unpocodejava.wordpress.com/2012/05/30/java-corriendo-intentando-correr-sobre-raspberry-pi/https://unpocodejava.wordpress.com/2012/08/14/corriendo-tomcat-7-en-un-raspberry-pi/

    Instalacin

    La instalacin es muy sencilla. La banda se inserta en el conector plano entre la Ethernet y el HDMI. Primeroes necesario levantar una pestaa tirando hacia arriba:

  • Despus se inserta la faja de la cmara, con la parte plateada orientada hacia el puerto HDMI

    Cuando est bien colocada, se baja de nuevo la pestaa y listo.

    Configuracin

  • Arrancamos el Pi y nos autenticamos. El nombre y password por defecto, como ya hemos visto en otrostutoriales es

    usuario: pipassword: raspberry

    Actualizamos el firmware y libreras del Pi a la ltima versin:>sudo apt-get update>sudo apt-get upgrade

    Accedemos a la configuracin del Pi con el comando>sudo raspi-config

    Navegamos al men camera y seleccionamos enable

  • Seleccionamos Finish y reiniciamos

    En el tutorial anterior java-en-un-raspberry-pi-desde-cero, podemos encontrar como instalar wifi y un servidorremoto vnc en el Pi. En http://www.raspipc.es podemos encontrar bateras recargables de 5v 1mA y unatoma usb, como esta:

  • Con esto y un poco de esparadrapo, quedamos totalmente wireless para mover la cmara en busca de lamejor toma.

    Pruebas Locales

    Procedemos testear que la instalacin de la cmara funciona correctamente. El commando raspivid permiterealizar capturas de video, mientras que raspistill captura imgenes fijas.

    Escribamos en la consola el siguiente comando:>raspistill -v -o test.jpg

    Que muestra 5 segundos de vista previa por defecto y toma una foto, salvndola en el fichero test.jpg,

  • Hay que destacar que no es posible ver la vista previa desde el cliente remoto vnc.

    -o output el nombre del fichero y -t timeout especifica los milisegundos de vista previa.-d demo ejecuta el modo demo que rota a travs de varios efectos de imagen

    Comandos de EjemploCaptura 5s de video en formato h264:>raspivid -o video.h264

    Capturar 10s de video:>raspivid -o video.h264 -t 10000

    Captura 10s de video en modo demo:>raspivid -o video.h264 -t 10000 d

    Para ms informacin acerca del uso de estos comandos, referirse a la bibliogrfia o a la ayuda de los propioscomandos:>raspivid | less>raspistill | less

    Desactivar Led de la Cmara

    La cmara incluye un LED en la esquina que se enciende cuando la cmara esta activa.

  • Este led se puede desactivar editando el fichero>sudo nano /boot/config.txt

    y aadiendo la linea>disable_camera_led=1

    Streaming con VLC

    VLC es una plataforma opersource que interpreta la mayora de formatos multimedia. Para hacer streaminfvlc, necesitamos descargar en el PI el software

    >sudo apt-get install vlc

    Un mtodo muy eficiente para hacer stream es el va protocolo RTSP

    >raspivid -o -t 3600000 -w 800 -h 600 -fps 31 |cvlc -vvv stream:///dev/stdin sout #rtp{sdp=rtsp://:8554/}:demux=h264

  • El comando activa la cmara y el puerto 8554 es configurado como canal de stream, a la escucha desuscriptores.

    Podemos jugar con los valores -w (ancho en pixels), -h (alto en pixels), -fps (fotogramas por segundo) paraconseguir mayor velocidad de transmisin.

    Para ver el stream debemos instalar el cliente VLC en un PC, descargable desde http://www.videolan.org/.

  • Para suscribirnos a la direccin de stream hay que abrir en el men Abrir volcado de red

    La direccin:>rtsp://:8554/

    por ejemplo, un PC en la red local podra tener esta IP

    Pulsamos en reproducir y comenzaremos a ver el video en el reproductor.

    Los pros de este mtodo son

  • Facilidad de configuracinConexin de mltiples clientesFcil acceso a traves de routers (se podria configurar streaming a mediante protocolo http de un modosimilar).La aplicacin se integra en multiples plataformas, como lynux y android

    Los contras.

    Pese a haber probado mltiples configuraciones en cliente y en servidor, el protocolo rtsp tiene unalatencia de hasta 10 segundos en la LAN. Esto provoca un desfase que hace imposible el uso en tiemporeal de una conexin.

    Este un problema conocido y el autor del post aun no ha encontrado una solucin factible.

    Streaming Punto a Punto con MPlayer

    Al contrario que el protocolo anterior El stream punto a punto enva la seal del raspberry pi directamente a laIP del reproductor. Para ello necesitamos dos programas:

    Netcat es una utilidad de red que redirige flujos de lectura/escritura utilizando tcp/udp.MPlayer es un reproductor opensource que interpreta los formatos mas habituales.Tomamos como ejemplo un PC con sistema Windows. Tenemos que instalar ambos programas,descargables desde

    https://dl.dropboxusercontent.com/u/106074492/mplayer%20and%20netcat.zip

    y los descomprimimos en un directorio de trabajo, por ejemplo d:/pro/netplayer

  • Para arrancar la escucha en el PC, ejecutar en el directorio de trabajo

    >d:>cd pro>cd netplayer>nc -l -p 5001 | mplayer -vo direct3d -fps 31 -cache 2048 -nosound -framedrop

    que genera un socket de escucha (-l) en el puerto 5001. De ah, enruta (|) el stream de informacin alreproductor MPlayer con la siguiente configuracin:

    Interpreta 31 fotogramas por segundoCon un cache de 2MBDeshabilitamos el sonido (la cmara no tiene micrfono)En caso de falta de informacin, tirar el fotogramaEs muy importante es seleccionar el driver de output de video. En las pruebas direct3d ofrece unrendimiento muy correcto.

  • El programa se queda a la escucha de un stream entrante.

    En la parte del Pi necesitamos descargar el software:>sudo apt-get install mplayer netcat

    y activamos la cmara para enviar el stream de video con el comando>raspivid -o -vf -t 3600000 -w 800 -h 600 -fps 31 -n| nc 5001

    conocemos el comando raspivid; con el pipe mandamos la informacin al netcat, que manda el stream a la IP ypuertos especificados.

    En la parte del PC, se abre el reproductor mplayer:

  • Los Contras de este mtodo son:

    No es posible enviar ms que a un solo destinatarioConfiguracin muy rgida, es necesario que el PI conozca la IP del destinatarioEl mplayer no esta tan extendido en diferentes plataformas como el VLC

    Los Pros:

    Muy baja latencia, menos de 0.5 segundos en la LAN.Debido a la velocidad, este mtodo es vlido para imagen en tiempo real.

    Solucin Mltiples Clientes

    Si fuera necesario conectar mltiples clientes (de distintos sistemas operativos) al stream, una solucinsencilla podra ser usar el PC como Gateway de video y conectarse mediante vnc.

    Los clientes VNC existen para mltiples plataformas. En el gateway (PC), instalar y ejecutar el servidorvnc desde http://www.realvnc.com/

    El puerto de escucha por defecto es el 5900, es posible cambiarlo desde la seccin options.

    La pantalla de conexin del cliente es como la siguiente:

  • Escribimos la ip:puerto del servicio vnc (5900) del Gateway PC y pulsamos connect. La primera vez daraun aviso (por no tener el certificado) y pasara a la ventana de autenticacin:

    Y sin ms problemas accederemos al escritorio.

  • En mi experiencia, la eleccin del driver de reproduccin mplayer (opcin vo) afecta drsticamente a lacalidad de la imagen remota.

    Si accedemos desde fuera de la LAN al gateway, tener en cuenta que hay que poner la IP externa(consultar en www.whatismyip.org) y configurar el router para redespachar la sear a la IP/puertointernos correspondientes:

    Existen diversas implementaciones para VNC desde android. Debido que en los dispositivos mviles labanda limitada de datos, si queremos conseguir imagen a tiempo real se recomienda:

    Quitar fondos, temas y efectos visuales del escritorio del gatewayDefinir la resolucin de la maquina Gateway lo mas parecida al tamao de la pantalla (se podraconfigurar que corriera en full screen)Bajar los colores del cliente vnc a 256Bajar los fps, width y height del transmisor (Pi)

  • Anterior Siguiente

    Deja un comentarioTu direccin de correo electrnico no ser publicada. Los campos necesarios estn marcados *

    Rate This

    1 agosto 2013 3 Replies

    Referencias

    Tutorial de iniciacin a la cmarahttp://www.adafruit.com/products/1367

    Documentacin Raspicam mas en profundidadhttp://www.raspberrypi.org/wp-content/uploads/2013/07/RaspiCam-Documentation.pdf

    Resumen de conexin VLC con protocolos rtsp/http/hslhttp://www.mybigideas.co.uk/RPi/RPiCamera/

    Tutorial configuracin punto a punto MPlayerhttp://smokespark.blogspot.com.es/2013/06/26-streaming-live-video-from-raspicam.html

    Tu voto:

    Share this:

    2 1 Me gusta

    3 bloggers like this.

    Relacionado

    Java corriendo (intentandocorrer) sobre Raspberry Pi

    Java en un Raspberry PI,desde cero

    Android vs Raspberry Pi

    En "Java" En "Dispositivos"En "Android"

  • Publicar comentario

    Notificarme los nuevos comentarios por correo electrnico.

    Nombre

    Correo electrnico

    Web

    Comentario

    Luis Miguel Gracia Luis en 1 agosto 2013 en 23:07

    Peazo post Miguel!!!Buf!!!!quien yo me s tiene que estar contenta

    Responder

    Francisco Javier en 12 agosto 2014 en 4:37

    hola buenas tardes, me gusto muchisimo su post pero me gustaria saber mas a fondo como hicieron elsistema autonomo de fotografias

    Responder

    santiago en 10 febrero 2015 en 19:12

    estoy hacindome una aplicacin que necesito recibir streaming. He probado el ejemplo que haspuesto con netcat y mplayer pero no tengo ni idea de como meter el video en un jpanel de java.

    *

    *

  • View Full Site

    Crea un blog o un sitio web gratuitos con WordPress.com.

    Now Available! Download WordPress for Android

    me puedes decir como podra hacerlo?

    muchas gracias de antemano

    Responder