Cómo hacer un vídeo time-lapse con linux

Posted on by
Albahaca en crecimiento: noveno día

Albahaca en crecimiento: noveno día

Los vídeo time-lapse son una excelente forma de adquirir una nueva perspectiva temporal de nuestro entorno. Uno de los usos más habituales es observar el crecimiento de plantas, creando vídeos que comprimen días en tan solo unos segundos. Si quieres crear tu propio vídeo time-lapse a continuación te explicamos como puedes hacerlo utilizando un teléfono móvil Android antiguo a modo de cámara IP y una Raspberry PI para el almacenamiento y posterior procesado del vídeo.

Cámara IP

Para utilizar un teléfono Android como cámara IP lo configuramos como explicamos anteriormente en Usar un teléfono Android como cámara wifi. De esta forma tendremos una URL a la cual cada vez que accedamos disparará una foto, la dirección tendrá el siguiente formato:

http://IP:PUERTO/photoaf.jpg

Script

Una vez configurada la cámara IP tendremos que crear un script para que guarde la foto y le de un nombre. En este caso el script admite el uso de usuario y contraseña para acceder a nuestra cámara IP, si es que lo hemos configurado así previamente. También realizaremos una gestión de errores mediante jpeginfo de manera que si la foto no es correcta la borrará y la volverá a disparar hasta que esta no tenga errores.

#!/bin/bash
# Direccion de la webcam
URL_WEBCAM="http://IP:PUERTO/photoaf.jpg"
# Usuario
USER=""
# Password
PASS=""
# Directorio de salida
DIR="/home/MYNAME/Pictures/timelapse-photos/"

NAME=`date +%d-%m-%Y_%H:%M:%S`
wget --no-check-certificate --no-verbose --user $USER --password $PASS $URL_WEBCAM -O $DIR$NAME.jpg
jpeginfo -d $DIR$NAME.jpg
while [ ! -f $DIR$NAME.jpg ] ; 
    do 
        NAME=`date +%d-%m-%Y_%H:%M:%S`
        wget --no-check-certificate --no-verbose --user $USER --password $PASS $URL_WEBCAM -O $DIR$NAME.jpg
        jpeginfo -d $DIR$NAME.jpg
    done

Añadir a Crontab

Para ejecutar periódicamente nuestro script debemos añadirlo a crontab. Para ello debemos estableces cada cuanto queremos sacar una foto. Hay que tener en cuenta que para hacer un vídeo usaremos 24 imágenes por segundo, de manera que si hacemos una foto cada 10 minutos el vídeo resultante que formaremos después será de 12 segundos por cada 24 horas. Dependiendo de tus necesidades podrás hacer las fotos en otros intervalos. Para ellos editamos en crontab mediante la siguiente instrucción:

$ crontab -e

Y le añadimos la siguiente línea para que realice una foto cada 10 minutos:

10 * * * * /home/MYNAME/scripts/timelapse.sh

Convertir a vídeo

Por último, una vez que tengamos todas la fotos que necesitamos para hacer el vídeo hacemos lo siguiente:

$ cd /home/MYNAME/Pictures/timelapse-photos/
$ ls > frames.txt
$ mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o timelapse.avi -mf type=jpeg:fps=24 mf://@frames.txt

Una vez hecho esto ya tendremos nuestro vídeo time-lapse.

Vídeo de ejemplo

Vídeo de crecimiento de Albahaca durante 10 días.

Comments are disabled