viernes, 16 de septiembre de 2011

ANDROID & LINUX: Haciendo un TimeLapse en 3 patadas!

Hacer un Time-Lapse nunca ha sido tan fácil (si usas Linux claro).


Se llama time-lapse a una secuencia de vídeo acelerada, donde los acontecimientos suceden a una velocidad mucho más rápida de la normal (wikipedia)


Basicamente se requiere dos cosas: fotos y un video maker.
Hacer un Timpe-Lapse con una DSLR es doloroso... son cientos o miles de fotos, y el obturador de estos equipo tienen, en promedio, una vida útil de 100.000 disparos... chaca la cuenta. Lo menos doloroso es hacerlo con una cámara compacta (de bolsillo) que tenga temporizador o intervalómetro.


So... en android hay varias opciones que nos facilitan la vida con los Time-Lapse, por ejemplo yo prefiero Tina TimeLapse no te limita el tamaño de imagen y no es una aplicación "pesada".
Y en Linux solo necesitamos instalar:
# apt-get install mencoder

 Con Mencoder construiremos el vídeo cuando tengamos las fotos.


Ahora vamos con la captura de las fotos:


Con ésta app no hay complejidad: Indicas el nombre de Time-Lapse (será el nombre que tendrá la carpeta que crea la app en el equipo), el intervalo de cada foto (si vas a capturar personas es mejor que sea de 1 segundo por foto), limite de fotos, resolución de la foto (ésta será la resolución del video también), balance de blancos (si no va a existir cambio de iluminación es mejor dejarlo en automático).
Haremos tap para iniciar o finalizar la grabación, sencillísimo.
Al finalizar el proceso tendremos una serie de fotos con la cual construiremos el vídeo. Ya hicimos la parte Dificil, viene la fácil:


OPCIONAL: En mi caso particular, las fotos me salen orientadas 90 grados hacia la izquierda, no se si es un error de telefono o de la aplicación, pero eso se arregla con 2 clicks (con un nautilus script llamado rotar imagenes), así que no me afecta.

Con las fotos listas, vamos a nuestra querida terminal, y nos ubicamos en la carpeta donde está las fotos:





Para armar un video a partir de muchas fotos hay que crear un archivo plano que contenga el orden de los fotogramas, en linux es MUY facil hacer esto "ls -1", ojo, el argumento es UNO no L.


$ ls -1




Para crear el archivo plano, tan solo hay que desviar la salida con ">" e indicar el archivo:


$ ls -1 > lista.txt



Ahora solo falta crear el video con mencoder:


$ mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4 -o 110914_oficina.avi -mf type=jpeg:fps=15 mf://@lista.txt


Con "-o 110914_oficina.avi" se indica el nombre del video
con "-mf type=jpeg:fps=15" se indican los cuadros por segundo
y con "mf://@lista.txt" se indica el archivo que contiene los fotogramas




Y listo! ahora a reproducirlo:

$ vlc 110914_oficina.avi







NOTA: Lamentablemente ningún pasante fue herido durante la creación del TimeLapse


OPCIONAL: si por casualidad requieres corregir el error "ODML: Aspect information not (yet?) available or unspecified, not writing vprp header." tan solo ejecuta lo siguiente:


$ mencoder -oac copy -ovc copy -force-avi-aspect 1.777 video_origen.avi -o video_corregido.avi

Dios te bendiga!