Delirando sobre informática, fotografía, programación, móviles y mucho más desde 2003
Para controlar a este bicho mientras no estoy en casa, pensé en usar la webcam en streaming para poder conectarme desde cualquier lado con el móvil y ver qué está haciendo. Tras mirar varias alternativas, me decidí por ffmpeg por la cantidad de formatos en los que se puede emitir, además de ser relativamente fácil de configurar.
La emisión se basa en dos ejecutables: ffserver y ffmpeg. El primero se ejecuta en modo escucha y se encarga de hacer el streaming real mientras que el segundo le envía la imagen al primero.
Para empezar, es necesario crear un archivo de configuración tomando como base /etc/ffserver.conf, dejándolo como sigue:
Port 8090 BindAddress 0.0.0.0 MaxHTTPConnections 2000 MaxClients 1000 MaxBandwidth 1000 CustomLog - <Feed webcam.ffm> File /tmp/webcam.ffm FileMaxSize 5M </Feed> <Stream webcam.swf> Feed webcam.ffm Format swf VideoBitRate 320 VideoFrameRate 15 VideoSize 640x480 NoAudio VideoQMin 1 VideoQMax 3 </Stream> <Stream stat.html> Format status </Stream> <Redirect index.html> URL http://www.ffmpeg.org/ </Redirect>
Una vez configurado, es necesario lanzar el servidor con el comando:
ffserver -f ffserver.conf
Ahora sólo quedaría enviar la imagen al servidor con el comando ffmpeg y se puede utilizar cualquier entrada para redireccionarla al servidor. Por ejemplo, en el caso de una webcam, una capturadora de TV o cualquier entrada de vídeo, el comando sería:
ffmpeg -r 15 -s 320x240 -f video4linux -i /dev/video0 http://localhost:8090/webcam.ffm
Con mi cámara web Logitech Quickcam Messenger y el driver gspca me encontré con este error:
[flv @ 0x97df6f0]rc buffer underflow VIDIOCMCAPTURE: Invalid argument
Que pude solucionar añadiendo lo siguiente antes del comando ffmpeg:
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
Si todo va bien, podremos ver la imagen emitida con el navegador, ya que creará un objeto Flash automáticamente
Como siempre, la mayoría de software de Nokia está sólo disponible para Windows o como mucho para Mac OS X (lo único que hacen multiplataforma es algún kit de desarrollo), y con su software de conversión de vídeo no iban a ser menos. Pero como siempre, hay alternativas libres y en este caso la mejor alternativa es ffmpeg, un potentísimo conversor de vídeo y audio multiplataforma.
La idea es convertir cualquier vídeo para que un teléfono Symbian sin software extra pueda reproducirlo, manteniendo una calidad decente. Como estos teléfonos integran un reproductor RealPlayer que reproducen el formato MP4, podremos convertir cualquier vídeo en formato 16:9 para Nokia 5800 con el siguiente comando:
ffmpeg -i video.flv -f mp4 -vcodec mpeg4 -b 256000 -r 15 -s 640x360
-acodec libfaac -ar 48000 -ab 128 -ac 2 video.mp4
Para un Nokia con pantalla 320×240 se usaría:
ffmpeg -i video.flv -f mp4 -vcodec mpeg4 -b 256000 -r 15 -s 320x240
-acodec libfaac -ar 48000 -ab 128 -ac 2 video.mp4
Luego sólo queda transferir el vídeo al teléfono via USB o Bluetooth y listo
Delirios de un Informático :: Gestionado con WordPress :: Alojado en Bitacoras.com :: Licenciado bajo Creative Commons