Timelaps – Zeitrafferfilme mit der Digitalkamera

Wir haben einen neuen Eichhörnchen-Futterkasten. Es fehlen immer mal wieder Nüsse, aber bisher ist es uns noch nicht gelungen die Eichhörnchen (oder Krähen?) am Futterkasten zu beobachten. Also werde ich den Tieren jetzt mal mit moderner Überwachungstechnik auf den Leib zu rücken.

Eichhörnchen Futterkasten

Keine Kundschaft am Eichhörnchen Futterkasten

Das da rechts ist ein Zeitraffer-Filmchen, aus 21 Fotos, die im Laufe von 20 Minuten entstanden sind. Um solche Filme herzustellen gibt es verschiedene Methoden.

  • Manche Kameras haben eingebaute Funktionen, um Zeitrafferaufnahmen zu machen. Leider sind solche Kameras nicht sehr verbreitet (und auch nicht immer die preisgünstigsten)
  • Filme, die in normaler Geschwindigkeit aufgenommen wurden, können nachträglich bearbeitet werden. Diese Methode habe ich zum Beispiel beim “Brötchen backen” oder bei diesem Sonnenuntergang verwendet.
  • In regelmäßigen Abständen aufgenommene Einzelaufnahmen können nachträglich zu einem Film zusammen gesetzt werden.

Leider kann keine unserer Kameras selbstständig Zeitraffer-Filme aufnehmen. Auch die Aufnahme von stundenlangen Filmen in Normalgeschwindigkeit kommt nicht in Frage, weil ich keine große Lust habe, später ebenso lange Filme eines leblosen Futterkastens zu sichten.

Übrig bleiben Einzelaufnahmen in regelmäßigen Abständen. Allerdings ist es etwas umständlich regelmäßig selbst auf den Auslöser zu drücken. Zum Glück kann man die meisten heutigen Kameras mit einem Computer über den USB-Port fernsteuern.

Ich habe das mit drei etwas älteren Digitalkameras (Nikon D50, Nikon Coolpix L11, Panasonic (Lumix) DMC-FZ38) getestet und es hat bei allen bestens funktioniert. Hier mal eine kleine Zusammenfassung meiner Vorgehensweise mit der Nikon D50:

Zunächst braucht man auf dem Computer ein Programm, dass die Kamera steuern kann. Unsere Rechner laufen unter Linux. Da nimmt man natürlich gphoto2, das in den Repositories der gängigen Distributionen enthalten ist. Soweit ich weiß gibt es gphoto2 (und auch die anderen Programme, die ich weiter unten verwende) auch für Windows und Mac.

Gut, zunächst wird also gphoto2 installiert. Anschließend muss die Kamera (zumindest die Nikon-Kameras) in den PTP-Modus umgeschaltet werden (im Menü unter Einstellungen -> USB -> PTP). Dann wird die Kamera mit dem USB-Port des Rechners verbunden und es kann losgehen. Die folgenden Befehle werden (als normaler Benutzer) direkt in die Konsole getippert:

Mit “lsusb” kann man nachsehen, ob der Rechner überhaupt eine Kamera erkannt hat. Gewöhnlich ist das der Fall, aber sicher ist sicher:

lsusb

Bei mir findet dieser Befehl zum Beispiel unter anderem das Gerät mit der ID 04b0:040a:

ID 04b0:040a Nikon Corp. D50 (ptp)

Klasse, die Kamera wurde erkannt und sie befindet sich tatsächlich im PTP-Mode. Mal sehen ob gphoto2 etwas mit dieser Kamera anfangen kann:

gphoto2 --auto-detect

Es kann!

Nikon D50 (PTP mode) usb:001,013

Super, also schnell mal das erste Foto schießen:

gphoto2 --capture-image

Die Kamera klickt. Gleich noch ein Versuch. Dieses mal soll das Foto anschließend sofort auf den Rechner herunter geladen werden:

gphoto2 --capture-image-and-download

Funktioniert ebenfalls. Dann also die erste kleine Serie – 20 Fotos im Abstand von 10 Sekunden:

gphoto2 --capture-image-and-download --interval 10 --frames 20

Während die Kamera alle 10 Sekunden vor sich hin klickt überlege ich schon mal, wie man aus den Fotos einen Film machen kann. Das Mittel der Wahl ist da natürlich unter Linux immer “ffmpeg“. Dieses Programm verwende ich auch um Echtzeitfilme in Zeitrafferfilme zu wandeln. Es geht aber noch einfacher: “convert”. Das Programm “convert” gehört zu den ImageMagick Tools. Intern benutzt es übrigens das eben schon erwähnte “ffmpeg”, aber es ist (für mich) auf die Schnelle leichter zu bedienen. Ein Mpeg-Video produziert man damit so:

convert -delay 20 *.jpg film.mpeg

Leider wird der Film viel viel zu groß. Die Fotos sollten vielleicht vorher etwas verkleinert werden. Um die Originale nicht zu löschen erzeuge ich einen verkleinerten Satz Bilder (Auflösung 300×200 Pixel) im Ordner “small”:

for i in *.jpg; do convert "$i" -resize 300x200 "small/$i"; done

Bei einem so kurzen Film lohnt es sich kaum ein Mpeg-Video zu erzeugen. Ein animiertes Gif ist da viel günstiger:

convert -delay 20 small/*.jpg anim.gif

Ergebnis siehe oben.

Alle drei verwendeten Programme (gphoto2, convert, ffmpeg) sind wahre Monster mit unzähligen verfügbaren Optionen. Das was ich hier angerissen habe, ist wirklich nur ein vorsichtiges Kratzen an der Oberfläche. Zum Beispiel sollte die Kamera bei Zeitrafferaufnahmen daran gehindert werden immer wieder neu zu fokussieren oder die Belichtung und Blende zu verändern. Viele Kameras verändern sogar automatisch die ISO-Einstellung des Sensors. Abhängig vom Kameratyp können all diese Einstellungen abgefragt und verändert werden ohne umständlich im Menü der Kamera herumzustochern. Auch sehr nützlich – man kann nachsehen, ob in den Akkus überhaupt noch genug Saft vorhanden ist:

gphoto2 --get-config batterylevel

Siehe auch:

Werbung:

Weblinks:

5 Kommentare zu Timelaps – Zeitrafferfilme mit der Digitalkamera

  • Rainer

    Super – Garten und Linux und commandline – und dazu ein HowTo was alle wichtigen sachen erklärt. Toll.
    Ich hatte bisher immer den Eindruck, dass die drei dinge meistens nicht vereinbar sind. Ich bin also nicht alleine.

    Und die idee vom Computer das zu steuern ist super – und gibt viele möglichkeiten.

    Werde auf jeden fall mal in gphoto reinschauen.

    Danke,

    Rainer

  • Aron

    ffmpeg ist wirklich sehr kompliziert! Ich habe selten so eine umfangreiche Manpage gesehen. Könntest Du mal kurz erklären, wie Du damit Normal-Filme in Timelaps-Filme umwandelst?

    • Ich bastle mir für sowas immer kleine Skripte. Im Prinzip geht es aber folgendermaßen:

      Zuerst wird der Film ein Einzelbilder zerlegt (am Besten in einem Temporärordner). Der Parameter hinter -r ist die gewünschte neue Framerate – hier also z.B. 1 fps.

      mkdir /tmp/ffmpeg
      ffmpeg -i input.mpeg -r 1 -f image2 /tmp/ffmpeg/%05d.png

      Anschließend werden die Einzelbilder wieder zu einem Film zusammen gesetzt. Z.B. so:

      ffmpeg -i /tmp/ffmpeg/%05d.png -sameq output.mpeg

      … zuletzt den Temporärordner löschen …

      rm -rf /tmp/ffmpeg

      Fertig ;-)

  • Frank

    Hallo zusammen.
    Vielen Dank für diesen Artikel. Ich habe vor ein solche Aufnahmenreihe von dem Bau eines Fertighauses zu erstellen. Hierzu soll wie oben beschrieben auch Linux mit gphoto2 und einer FZ38 zum Einsatz kommen. Leider bekomme ich diese zwar im ptp Modus angezeigt aber gphoto kann keinen Auslösevorgang starten.
    Bei Ihnen hat es wohl funktioniert. Hatten Sie dieses Problem auch und können mir vielleicht eine Lösung geben?
    Viele Grüße
    Frank B.

    • Bei meiner Panasonic Lumix DMC-FZ300 funktioniert es ebenfalls nicht. Offenbar liegt das daran, dass Panasonic “vergessen” hat den entsprechenden Teil des PTP Protokolls zu implementieren. Eine (unvollständige) Liste kompatibler Kameras gibt es zum Beispiel auf der Seite von gphoto (dort die Spalte “Additional Abilities”)
      Ich hege immer noch die Hoffnung, dass ein zukünftiger Firmware-Update dieses Problem behebt. Die aktuelle Firmware (bei der FZ300 Ver 2.2) tut das leider nicht.

Hinterlassen Sie eine Antwort

 

 

 

Sie können diese HTML Tags verwenden

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

Beachte bitte, dass wir Links in Kommentaren nicht in jedem Fall veröffentlichen können. Näheres dazu findest Du in unseren Regularien.