0

Raffst Du’s? Zeitrafferaufnahmen mit dem Raspberry Pi

Vor einiger Zeit bat mich ein Bekannter, den mehrwöchigen Umbau seines neuen Ladenlokals in Form einer Zeitrafferaufnahme zu dokumentieren. Da ich auf der staubigen Baustelle nur ungern meine hochwertige Systemkamera zurücklassen wollte, lag es nahe, für diese Aufgabe auf den kostengünstigen Raspberry Pi zurückzugreifen, dessen Verlust sich eher verschmerzen ließe.

Zeitrafferaufnahmen bestehen aus einer Vielzahl von Einzelbildern, die über einen längeren Zeitraum in einem vorher festgelegten, regelmäßigen Abstand aufgenommen werden. Für normale Filmaufnahmen, die das Geschehen in Echtzeit und ruckelfrei darstellen, benötigt man bei Einhaltung der in Deutschland üblichen PAL-Norm 25 Einzelbilder für 1 Sekunde Film.
Da sich die avisierte Langzeitdokumentation aber über mehrere Wochen erstrecken sollte, habe ich mich für 1 Bild/Minute entschieden. In einer Stunde werden so 60 Bilder geschossen. Bei einer späteren Bildfrequenz von 25 Bilder/Sekunde wird eine in Echtzeit verlaufene Stunde ergo in 2,4 Filmsekunden abgebildet. Ein ganzer Tag dauert dann 57,6 Filmsekunden, eine Woche 403,2 Filmsekunden, und das macht bei maximal 4 Wochen Umbauzeit (eher weniger) dann insgesamt 1612,8 Filmsekunden, sprich: gute 27 Minuten. Das klingt erst mal recht ermüdend, und das würde es sicher auch sein.
Die endgültige Aufnahmezeit wird aber, wie später gezeigt, bei Einrichtung des Cronjobs auf 12 Stunden pro Tag beschränkt, da die Handwerker voraussichtlich ja nur zwischen 08:00 und 20:00 im Einsatz sein werden. Das Gesamtmaterial schrumpft also auf 13,5 Minuten zusammen. Schneidet man die langweiligen Passagen (Frühstück, Mittagspause, Besorgungen, Handlungen außerhalb des Kamerabereichs) später heraus, dann bleibt erfahrungsgemäß höchstens ein Viertel im endgültigen Film.
Vier Wochen in gut 3 Minuten als Endlosschleife auf einem großen Display sind bei der Eröffnung durchaus kurzweilig, und ein ausreichender „Headroom“ beim Rohmaterial hat noch nie geschadet.

Also, frisch ans Werk:

Ich setze hier einmal voraus, dass das Kamera-Modul korrekt an der CSI-Schnittstelle angeschlossen wurde (Blaue Markierung muss – bei dem verwendeten RasPi 2 – zur Netzwerk-Buchse zeigen) und mittels

pi@raspberrypi ~ $ sudo raspi-config

aktiviert wurde. Falls im Konfigurationsmenü die Zeile „camera Enable/Disable camera addon support“ fehlt, sollte das System mit

pi@raspberrypi ~ $ sudo apt-get update

und anschließendem

pi@raspberrypi ~ $ sudo apt-get upgrade

zunächst auf den aktuellen Stand gebracht werden.

Ob die Einrichtung der Kamera korrekt ist, lässt sich schnell über den Befehl „raspistill“ feststellen, der in dieser Form ein JPEG-Bild im Home-Order des Users (hier: pi) erstellt:

pi@raspberrypi ~ $ raspistill -o test.jpg

Da sich der Raspberry Pi auf einer Baustelle befinden wird und deshalb nicht von einer durchgängigen Stromversorgung auszugehen ist (vor allem, wenn Elektriker involviert sind), sollte die Aufnahme nach Stromausfällen selbständig wieder beginnen.
Ferner sollte jedes generierte Bild einen eindeutigen Namen erhalten, da bei simpler, fortschreitender Nummerierung vorherige Bilder überschrieben werden könnten.
Es muss also ein Shell-Skript erstellt werden, das über einen Cronjob nach jedem Booten des Raspberry Pi automatisch ausgeführt wird.

Zuerst wird jedoch ein eigener Ordner (hier ‚zeitraffer‘) im Home-Verzeichnis angelegt, in dem die Einzelbilder gesammelt werden:

pi@raspberrypi ~ $ mkdir ~/zeitraffer

Anschließend wird mit Starten des Editors nano (Ja, vi oder besser vim ist cooler, aber nur für Geeks!) das Shell-Script für das Aufnehmen und Speichern der Einzelbilder erstellt:

pi@raspberrypi ~ $ sudo nano ~/zeitraffer.sh

Der Code kann hier über den Befehl „Copy“ der Menüzeile des Codeblocks in die Zwischenablage kopiert und in nano eingefügt werden.

Die angegebenen Befehlsoptionen -w 1920 und -h 1024 sind genau genommen überflüssig. Sie dienen der Einstellung der Bildauflösung (-w für die Bildbreite, -h für die Bildhöhe). Der Befehl ‚raspistill‘ wählt ohne Angabe der Auflösung nämlich automatisch die höchstmögliche. Ich habe diese Einstellung dennoch implementiert, um zu verdeutlichen, wie im Bedarfsfall auch geringere Auflösungen eingestellt werden können.

Abgeschlossen wird das Erstellen des Shell-Scripts mit der Tastenkombination Strg+X zum Verlassen und Speichen, gefolgt von der Bestätigung der Sicherheitsabfrage mit Y bzw. J (je nach eingestellter Systemsprache) und dem Bestätigen des Dateinamens mit Enter.

Damit das erstellte Script ohne Fehlermeldung abgearbeitet werden kann, wird es mit folgendem Befehl als ausführbar deklariert:

pi@raspberrypi ~ $ sudo chmod +x ~/zeitraffer.sh

Bleibt nur noch das Einrichten des Cronjobs. Die zuständige Datei lässt sich mit folgendem Befehl bearbeiten:

pi@raspberrypi ~ $ crontab -e

In die sich daraufhin öffnende Datei wird hinter der letzten Zeile folgender Code eingefügt:

Gespeichert wird wieder mit Strg+X, Y (oder J) und Enter.

Ab jetzt reicht das Booten des Raspberry Pi aus, um die Aufnahme automatisch zu starten bzw. fortzusetzen. Die gesammelten Einzelbilder können dann später mit einer Videobearbeitungssoftware zum endgültigen Film zusammengesetzt werden.

rpn

Nerd, Maker, FabLaber, Chaos Computer Mensch, schreibfauler Gelegenheitsblogger

Schreibe einen Kommentar