Crea un Time-lapse con PiCam HQ

Via: pxfuel.com

Hay eventos de la vida cotidiana que no podemos percibir a simple vista, como el crecer de una planta o el transcurso del día. Afortunadamente con una Raspberry Pi y la nueva cámara de alta definición podemos capturar estas cosas con unas líneas de código. En este post te mostraremos cómo hacerlo.

1.- Conecta la cámara

Primero, con la Raspberry Pi apagada, conecta la cámara de alta definición a puerto etiquetado para la cámara (en algunos etiquetada como CSI). Para ello levanta la pestaña del puerto, coloca el cable con el plástico azul hacia arriba y vuelve a cerrar la pestaña.

2.- Habilita y prueba la cámara

Enciende tu Raspberry Pi y habilita la interfaz de la cámara desde la herramienta de configuración de Raspberry Pi, luego reinicia la tarjeta. Habre una Terminal o establece una conexión segura SSH para acceder desde una computadora remota. Puedes probar la cámara con el siguiente comando.

raspistill -o testimage.jpg

Después de unos segundos, una imágen JPEG se guardará en el directorio. Si la cámara está montada al revés puedes usar el comando para rotar (-rot 180) para arreglarlo

3.- Instala y configura el software

Instala un servidor web para que puedas acceder a las imágenes capturadas de forma remota. Utiliza este comando para instalar Apache:

sudo apt-get install apache2

Elimina la página por defecto para ver los contenidos del directorio

sudo rm /var/www/html/index.html

Visita la dirección IP de tu Raspberry Pi (puedes averiguar la IP con hostname -I) desde otra computadora y deberías ver un directorio vacío. Si ejecutas el siguiente comando y refrescas la página deberías ver un archivo de imagen. Ejecuta el comando con sudo para darle privilegios de superusuario.

sudo raspistill -o /var/www/html/testimage.jpg

4.- Captura las imágenes

Monta tu escena y revisa el posicionamiento de la cámara

sudo raspistill -w 1920 -h 1080 -o /var/www/html/testimageFullHD.jpg

El alto y ancho de la imagen se cambian a una relación más pequeña para mantener la relación de 16:9. Esto hace las cosas más fáciles. Los bordes superior e inferior se recortan, así que asegurate que tu modelo está encuadrado. Ejecuta este código para iniciar la captura:

sudo raspistill -w 1920 -h 1080 -t 10800000 -tl 10000 -o /var/www/html/frame%04d.jpg &

Esto tomará una foto cada 10 segundos por 3 horas. El ‘&’ al final termina el proceso en segundo plano.

5.- Prepara la herramientas para el video

Es posible renderizar el video desde la Raspberry Pi, pero dependiendo del modelo esto puede tardar bastante. Así que puede ser preferible transferir los archivos a una computadora con más recursos. Cualquier método que decidas utilizar, necesitas instalar algunos paquetes para renderizar el video. Para hacerlo en la Rasperry Pi, ingresa:

sudo apt-get install ffmpeg

Esto instala la herramienta FFmpeg que usaremos para convertir nuestras imagenes en un video. Para copiar las imagenes a una computadora remota, podemos descargarlas desde el servidor web, utilizando wget o curl. Por ejemplo:

wget -r -A jpg http://192.168.1.45

O si no tienes wget

curl http://192.168.1.45/frame [0001-0766].jpg -O

Cambia la dirección IP y las etiquetas de acuerdo a los archivos que tengas.

6.- Renderiza el video

El paso final es ensamblar el video. Con el siguiente comando podemos empezar el proceso de renderizado

sudo ffmpeg -i /var/www/html/frame%04d.jpg -crf 4 -b:v 10M
/var/www/html/video.webm

Cuando el proceso de renderizado haya terminado, podrás ver tu video en el buscador. El framerate por default es de 25fps. Esto comprime 3 horas de imágenes tomadas a intervalos de 10 segundos a cerca de 40 segundos de video. Puedes ajustar esto con la opción de -framerate. El bitrate (-b) es ‘alto’ por defecto, y el Constant Rate Factor (-crf) se mantiene en bajo, para producir un video de buena calidad.

Referencias:

Capítulo 3, Guía para Cámara de Raspberry Pi.

Via: @sahinsezerdincer, pexels.com