Creando vídeos timelapse con la Raspberry Pi

3 comentarios Facebook Twitter Flipboard E-mail

Desde que vi el primer video timelapse siempre he sentido una fascinación por ellos. Eso de ver el tiempo acelerado da una perspectiva muy distinta de la realidad a la que estamos acostumbrados. Y como aficionado a la fotografía también he querido hacer uno. De hecho tengo un accesorio para mi cámara que confieso nunca he llegado a usar, ya que la batería de la cámara se va en un suspiro y no llega para hacer todas las fotos necesarias. Como siempre, la Raspberry Pi viene al rescate. Gracias a la cámara de la Raspberry Pi podemos hacer unos timelapse estupendos, como os cuento en esta entrada.

Otra cosa más, os recomiendo también ver los vídeos a pantalla completa en YouTube para disfrutarlos bien.

¿Qué es un timelapse?

Antes de empezar a meternos en faena permitidme que cuente qué es un timelapse para aquellas personas que no saben lo que es. Para hacer una película de vídeo tradicional necesitamos tomar a partir de 24 fotografías por segundo para mostrar movimiento y que éste aparezca suave y sin transiciones bruscas. Cuantas más fotografías, o mejor fotogramas que es el nombre que se usa en vídeo, más suave será el vídeo, siempre que reproduzcamos los fotogramas a la misma velocidad que fueron capturados.

Pero también podemos hacer muchas menos capturas por segundo, y reproducirlas como si se tratase de una película a velocidad normal. Con ello conseguimos acelerar el tiempo y pequeñas transiciones que se nos escapan en nuestra escala de tiempos aparecen en todo su esplendor, como puede ser la apertura de una flor o el movimiento de las nubes. El truco consiste en hacer un número de tomas adecuado a lo que queremos ver y que las transiciones sean lo más suave que se pueda, pero sin perder la aceleración en el tiempo.

¿Qué necesitamos para hacer un timelapse con la Raspberry Pi?

Aparte de una Raspberry Pi, la cámara de la Raspberry Pi y una tarjeta SD (os recomiendo 16 Gigas), necesitaremos una batería externa para cargar móviles y un recipiente para meter todo dentro. Aunque no es imprescindible, un adaptador Wi-Fi nos hará la vida más fácil y podremos comprobar las imágenes que vamos tomando sobre la marcha. Vamos por partes.

  • Hay dos cámaras oficiales para la Raspberry Pi, la cámara normal y el modelo NoIR. El segundo es más indicado para fotografía nocturna porque la lente no cuenta con filtro de infrarrojos. El resultado durante el día desvirtualiza los colores y probablemente necesite un filtro neutro para reducir un poco la exposición, pero también se pueden obtener timelapse diferentes. Para esta entrada yo voy a utilizar la cámara normal, cuyas características y especificaciones podéis ver aquí.
  • Velocidad y tamaño de la tarjeta SD. Mejor usad una tarjeta clase 10 para garantizar la escritura de las imágenes y la lectura rápida de la misma cuando volquemos al ordenador las imágenes/película. El tamaño es también importante, puesto que cada imagen a máxima resolución (2592 x 1944 píxeles) de la cámara y a jpg va a ocupar algo más de 4 megas, y eso utilizando una compresión de 85% en jpg y sin grabar información raw en cada imagen.

  • Batería. Yo utilizo una batería de Xiaomi (ahora Mi) de 10400 mAh para móvil por varias razones. La primera es que es compacta, la segunda que da información de su duración gracias a cuatro microleds (interesante para ver cómo vamos de energía y hasta cuándo podemos estirar el timelapse) y la tercera que es barata. Puede encontrarse por unos 18 euros fácilmente, y tiene una capacidad de 10400 mAh, más que suficiente para dejar la Raspberry Pi funcionando unas 9-10 horas seguidas.

  • Recipiente. Como vamos a dejar la cámara durante bastantes horas, y seguro querremos dejarla fuera de casa, os recomiendo una buena planificación desde el principio. Lo primero es un recipiente que no llame la atención para que los amigos de lo ajeno no se interesen por ella. Desde un bote de Nesquik a un tupper nos puede servir perfectamente. Si tiene cierre estanco mejor, así si se moja por la lluvia estará más protegido y sufriremos menos. En el timelapse del amanecer llegó una ola y me empapé entero. Ojo. Volviendo a las dimensiones, calculad que tiene que entrar la Raspberry Pi (contad con las dimensiones de la tarjeta SD), la batería, el adaptador Wi-Fi y los cables. Contad también con una buena posición de la cámara que nos permita hacer las capturas desde un ángulo adecuado. Especial atención a la estabilidad de la misma y a si hace viento, porque como veremos en uno de los timelapse de ejemplo pequeñas variaciones de la imagen afectan a la toma final.

Este es el recipiente elegido, un tupper normal y corriente

Comentaremos sobre el adaptador Wi-Fi más adelante en la entrada. Como veremos tiene ventajas y un pequeño inconveniente, que es que acortará un poquito la duración de la batería.

Puesta a punto y primeras pruebas

Una vez que hemos hecho un agujero lo más pequeño posible en el recipiente para que la cámara pueda tomar las imágenes y que hemos asegurado que la misma no se va a caer (nada de cinta aislante, aunque como veremos también tiene su punto hacerlo) con los tornillos de plástico que vienen con la cámara y su soporte, es hora de meterlo todo en la caja y conectarlo.

Sin duda este es un buen sitio para hacer un timelapse

Necesitamos grabar una imagen de Raspbian, el sistema operativo de la Raspberry Pi en la tarjeta SD. Tenéis trucos sobre cómo hacerlo aquí. Conectar la cámara a la Raspberry Pi también es sencillo y hay tutoriales en la web.

En el primera arranque de la Raspberry pi debemos hacer varias cosas, como permitir el uso de la cámara y expandir el tamaño de la imagen para que ocupe todo el tamaño de la tarjeta SD y que podamos grabar un montón de fotos, aprovechando todo su espacio. Ambas cosas se hacen con sudo raspi-config. Reiniciamos y procedemos a configurar la conexión Wi-Fi y asignarle una ip fija. Para la configuración de la conexión Wi-Fi os recomiendo utilizar wicd-curses tras los correspondientes comandos sudo apt-get update y sudo apt-get upgrade. Ya estaremos listos.

La Raspberry Pi en acción

Llegamos a la parte interesante. Antes hablábamos de la conexión Wi-Fi. Dicha conectividad nos permite tanto utilizar programas de terceros para lanzar un timelapse, como por ejemplo desde la aplicación Raspi-R para Android (de pago para activar las opciones de timelapse) o bien controlar las imágenes y verlas desde un navegador gracias a BerryCam. La aplicación BerryCam todavía no ha incorporado la opción para hacer timelapse, pero merece la pena instalar el servidor en la Raspberry Pi, ya que gracias a ello podremos ver a través de un navegador las imágenes que va capturando la Raspberry Pi. Las instrucciones para instalar BerryCam en la Raspberry Pi podéis encontrarlas aquí.

En vez de utilizar una aplicación para lanzar las capturas, y realmente creo que no hace falta, lo mejor es usar un script comoeste. El script que os comento tiene un fallo y para de tomar capturas a las 00:00 horas. Para solucionarlo debéis modificar la línea

if d.hour > 2:

por

if d.hour > 0:

Podéis hacerlo fácilmente con el editor nano incluido en la distribución de Raspbian (sudo nano raspiLapseCam.py). En el script también podemos configurar aspectos tales como el tiempo de espera entre tomas en segundos (línea 98), resolución de la imagen (líneas 96 y 97). Al final de la línea 92 tenemos otras opciones para configurar. Por ejemplo -sh 40 indica el valor de sharpness de la imagen, yo lo he subido un poco hasta 75. El balance de blancos es el parámetro -awb, parámetro que he dejado tal cual, y -mm sirve para modificar la exposición. Podemos probar a cambiar average por matrix y ver qué resultado queda mejor.

A ver si encontráis dónde se encuentra la Raspberry Pi tomando fotos

Como tener que entrar a poner los scripts es un soberano rollo, os propongo que hagáis que la ejecución de ambos scripts sea automática. Os dejo un par de tutoriales, uno de instructables y otro de Raspberry Web Server en el que os muestran paso a paso cómo hacerlo. Así, con cualquiera de los dos métodos, tanto con crontab o editando /etc/rc.local cuando encendamos la Raspberry pi se ejecutarán los scripts y empezará la captura de imágenes. También podremos acceder tanto a BerryCam con un navegador web desde cualquier dispositivo escribiendo la direccion ip de la Raspberry Pi y el puerto por defecto (8000) así: http://192.168.1.10:8000, suponiendo que la ip de la Raspberry sea 192.168.1.10.

Una vez que demos por terminada la captura de imágenes, es hora de pasarlas a nuestro ordenador y construir allí nuestra película, aunque también podríamos componer la película en la Raspberry Pi. Os recomiendo lo primero, sobre todo si sois usuarios de Mac. La aplicación Time Lapse Assembler es gratuita y con tan sólo decir en qué carpeta están las imágenes y unos pocos parámetros más tendremos en muy poco tiempo un vídeo con nuestro timelapse. Yo utilizo Folx en Mac, ya que permite bajar todas las imágenes a la vez y si por lo que sea la Raspberry se queda sin batería no tendremos que volver a bajar toooodas las fotos. Si decidis hacerlo en la Raspberry Pi, tendréis que detener el script de raspiLapseCam buscando en la lista de procesos cuál es el número de proceso con sudo ps -aux y haciendo sudo kill -9 númerodeproceso y luego ejecutar mencoder.

Levantarse a las cinco de la mañana y hacer vídeos timelapse con la Raspberry Pi

Para pasar las fotos otro método que podemos emplear el comando desde un terminal (sin hacer ssh antes, suponiendo que la dirección IP de la Raspberry es 192.168.1.10) sudo scp pi@192.168.1.10:/timelapse/*.jpg . el cual copia todas las fotos del directorio llamado timelapse de la Raspberry en el directorio actual de nuestro ordenador.

Resultados y posibles mejoras

Los resultados de los timelapse creados con la cámara de la Raspberry Pi son bastante buenos. La imagen evidentemente no es la de una cámara profesional, pero no os preocupéis que las películas son tan suficientemente llamativas que nadie os sacará faltas por ello. Si ponéis de tiempo entre tomas 10 segundos, veréis que la Raspberry Pi también lleva su tiempo para grabar las imágenes, por lo que finalmente se tomarán entre 3 y 4 fotogramas por minuto, o al menos es lo que ha pasado con la Raspberry Pi modelo B y con una tarjeta no especialmente rápida con fotos a máxima resolución (2592 x 1944 píxeles). Un vídeo de unos 50 segundos a 24 fps (recomendado en lugar de 30 fps para apreciar mejor los detalles) son 1200 fotos, que son unas seis horas y pico de capturas.

Si no queremos comprar la cámara de la Raspberry Pi que cuesta unos veintitantos euros, podemos utilizar una cámara usb, pero seguramente ello acortará la vida de la batería y por tanto la posible duración de los timelapse.

Y si nos gusta la experiencia podemos mover la cámara a la vez que vamos capturando tomas. Para ello necesitaremos un sistema Dolly automatizado o darle rienda a nuestra imaginación. Eso sí, nada de recurrir al azar como hice yo por accidente en el primer timelapse que podéis ver a continuación. La gravedad y una cinta aislante para sujetar la cámara al interior del tupper hicieron esto, llegando al desastre al final del vídeo donde la cámara se cae definitivamente.

Como veis se pueden hacer videos timelapse bastante buenos con la Raspberry Pi, así que ya tenéis otro proyecto más para hacer con ella. Deciros además que la calidad de los vídeos es bastante mayor de la que podéis ver, ya que YouTube aplica compresión a los mismos con la correspondiente pérdida de calidad.

Agradecemos a Raspipc el habernos cedido la Raspberry Pi y la Cámara para la prueba. Puedes consultar la política de relaciones con empresas aquí.

Vídeo | YouTube

Más información | Raspberry Pi Camera

En Xataka Smart Home | Raspberry Pi

Comentarios cerrados
Inicio