Wireless Video de Raspberry Pi a PC Un Poco de Java
-
Upload
arrietajohn -
Category
Documents
-
view
222 -
download
0
description
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