Dass sich mit Linux, beziehungsweise gphoto2 meine Canon EOS 7D ausgezeichnet fernsteuern lässt, hatte ich in diesem Beitrag über gphoto2 schon genauer beschrieben. Da sich mit gphoto2 auch die Anzahl der aufzunehmenden Bilder und die Wartezeit zwischen den Bildern bestimmen lässt, kann man damit natürlich auch wunderbar Zeitrafferaufnahmen (Timelapse) erschaffen.
Einige Gedanken und eine Warnung vorneweg. Möchstest Du ein langes Intervall mit vielen Fotos haben, belastet das natürlich die Kamera. Auch hochwertige DSLRs haben mechanische Teile. Manche Kameras halten 100.000 Aufnahmen, die anderen 300.000. Also bitte im Hinterkopf behalten, dass mal eben 1500 Bilder auf die Kamera schießen die Lebenszeit verkürzt (Mechanik, Sensor und und und). Wenn man nur damit experimentieren möchte, sind weniger Aufnahmen mit kurzen Videos sicher nicht unschlau.
Ein Stativ ist ebenfalls nicht blöd, wenn nicht sogar notwendig. Zumindest sollte es irgendetwas sein, das die Kamera stabil hält. Bei Zeitraffer will man schließlich zeigen, wie sich ein bestimmter Ort über einen gewissen Zeitraum verändert – halt eben auf einen kürzeren Zeitraum komprimiert.
Man braucht für das Szenario keinen Supercomputer. Um die Aufnahmen zu machen hat mein mittlerweile etwas angestaubtes Samsung NC10 locker ausgereicht. Ich habe meine Kamera für das Experiment auf das kleinste Format gestellt (small jpg). Somit ist ein Foto ungefähr 1,5 MByte groß – oder auch 2592×1728 Pixel – das reicht locker. Auch wenn es ein Sonnenuntergang war, wollte ich die Lichtverhältnisse gleich lassen – mir ging es hier um die Bewegung der Wolken. Deswegen habe ich die Kamera auf Blendenpriorität gestellt – also die Blende soll gleich bleiben, die Kamera entscheidet die Verschlusszeit. Das erste Bild hat die 7D mit 1/320 Sekunden und das letzte mit 1/50 aufgenommen. Insgesamt habe ich in circa 17 Minuten 51 Bilder geschossen – oder alle 20 Sekunden eine Aufnahme.


Weiterhin kann man sich überlegen, ob man den Autofokus deaktiviert. Man fokussiert manuell und alle Bilder haben denselben Fokus. Mit Blende F8 ist bei einem Weitwinkelobjektiv ohnehin sehr viel im Fokus und deswegen habe ich mich dafür entschlossen. Natürlich ist Blende, Verschlusszeit und so weiter Geschmacksache.
gphoto2 und mencoder erledigen die Schwerstarbeit
Nun muss man die Bilder nur noch so benennen, damit man sicherstellen kann, dass sie in der richtigen Reihenfolge sind. Der von mir verwendete Befehl war:
gphoto2 -I 20 -F 51 --capture-image-and-download --filename "%Y%m%d%H%M%S.jpg"
Die Option -I 20
gibt das Intervall der Wartezeiten an und -F 51
kümmert sich um 51 Aufnahmen. --capture-image-and-download
sichert die Aufnahme auf dem Rechner in dem Verzeichnis, in dem der Befehl ausgeführt wurde und löscht das Bild gleichzeitig von der Kamera.
Sind die Aufnahmen abgeschlossen, feuert man mencoder ab und erstellt das Video. Vielleicht sollte man die Original-Bilder irgendwo hinsichern, falls etwas schief geht. Dann hat man im Notfall mehr als einen Versuch.
mencoder "mf://*.jpg" -mf fps=12:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vbitrate=7000 -vf scale=1280:720 -oac copy -o timelapse.mp4
Da mir das Video mit 25 Bildern pro Sekunde etwas sehr kurz geworden wäre, habe ich mich für 12 fps entschieden. Das Video ist ein klein wenig ruckeliger, aber für das Experiment ist das OK. Bei scale kann man sich überlegen, welche Auflösung das Video haben soll. Full HD wäre zum Beispiel 1920:1080 und HD 1280:720.
Als letztes kann man sich noch überlegen, den Bildern einen Zeitstempel zu verpassen. Ich habe im Internet zwar ein ganz nützliches Script gefunden, das hat mir aber nicht getaugt. Man hätte jedes Bild einzeln konvertieren müssen. Da ich ein Backup meiner Bilder haben, lasse ich mittels convert (ImageMagick) einfach den Zeitstempel aus den EXIF-Informationen in die Bilder schreiben lassen und die Bilder auch überschrieben. Mein Script schaut folgendermaßen aus. Die Zeile mit convert ist deswegen separiert, weil das im Script eine einzige Zeile ist.
#!/bin/bash
DIR=/home/bitblokes/Pictures/timelapse
for FILE in $DIR/*.jpg
do
text=`identify -format „%[EXIF:DateTime]“ $FILE`
width=`identify -format %w $1`
convert $FILE -gravity southeast -pointsize 40 -stroke black -strokewidth 4 -annotate 0 „${text}“ -stroke white -strokewidth 1 -fill white -annotate 0 „${text}“ $FILE
done
Lässt man nun den mencoder-Befehl noch einmal laufen, bekommt das Video einen netten Zeitstempel.

Ich spiele gerne mit meiner Kamera und Linux. Mit einfachen Hausmitteln lassen sich recht simpel tolle Zeitraffer-Videos erstellen. gphoto2 und mencoder sollten sich in den Repositories der meisten Distributionen befinden. Das funktioniert natürlich auch mit jeder anderen Kamera, die gphoto2 unterstützt.
Schreibe einen Kommentar