Time-lapse videó készítése RPi-vel

Sok raspistill által készített kép egybefűzése avconv segítségével.

Már egy ideje beüzemeltem otthonra egy Raspberry Pi-t, de eddig nem használtam túl sok mindenre. A kamera modul megjelenésével gondoltam ideje lenne kezdeni vele valamit... Egy elég egyszerű dologról van szó, a kamera modullal való ismerkedéshez tökéletes kis projekt lehet. A beépített raspistill parancs támogatja is a time-lapse képek készítését a -tl és -t kapcsolók segítségével, de úgy vettem észre, hogy hosszabb futás esetén eléggé megakasztja a rendszert, így célravezetőbb lehet egy kis shell scriptet használni (nevezzük mondjuk timelapse.sh-nak), ami megfelelő időközönként futtatja a raspistill parancsot:

#!/bin/bash

for i in $(seq -f "%04g" 1 1440)
do
    raspistill -o "/path/to/images/IMG_${i}.jpg" -t 1000
    sleep 59
done

Ez a kód így nagyjából percenként fog egy képet csinálni, 1440-szer (tehát kb. egy napig fog futni). A raspistill paraméterezésével még érdemes lehet egy kicsit foglalkozni (például a képméretet beállítani a -w és -h kapcsolók segítségével). A sleep helyett használhatunk usleep-et is, ha pontosabban szeretnénk megadni a várakozási időt két futás között. Futtatni a következő módon ajánlott:

$ ./timelapse.sh &

Így háttérbe küldjük a folyamatot és nyugodtan kiléphetünk a shell-ből, a script tovább fog futni. Ha elkészültek a képek már csak össze kell őket fűzni egy videóvá. Ezt érdemesebb egy erősebb hardveren megtenni, ha nem akarunk a szükségesnél jóval többet várni. Parancssorból használhatjuk például az avconv parancsot:

$ avconv \
    -f image2 \
    -i /path/to/images/IMG_%04d.jpg \
    -r 24 \
    -qscale 2 \
    -s 640x480 \
    /path/to/output.avi

A különböző paraméterekkel itt is érdemes lehet eljátszogatni, hogy olyan kimenetet kapjunk, amit szeretnénk. Nálam ilyesmi lett a végeredmény egy délután alatt, percenként kb. 6 képet készítve:

Hozzáfűznél valamit?

Dobj egy emailt a blog kukac deadlime pont hu címre.

Feliratkoznál?

Az RSS feed-et ajánljuk, ha kedveled a régi jó dolgokat.