Der Raspberry Pi hatte ein paar Tage draußen im Schuppen verbracht und Fotos durch die Fensterscheibe vom “Schütten wir mal die halbe Dose Sommerblumen drauf (laut Beschreibung ausreichend für 50 qm² 🙂 ) und schauen was draus wird” Beet gemacht. Ich dachte zuerst ich lasse den Raspberry mit Kamera Modul nur ein bis zwei Tage draußen aber es ist doch fast ein Monat draus geworden. Es wird hier sicherlich noch mal ein spannenderes Video geben aber für den Anfang …
Für alle die es interessiert wie man eine Zeitrafferaufnahme ganz einfach mit dem Raspberry Pi und Kamera Modul selber machen kann, hier ein kleines HowTo:
Als erstes habe ich die Kamera LED ausgeschaltet. Diese blendet doch ein wenig hinter einer Fensterscheibe. Dafür habe ich die config.txt geöffnet
sudo nano /boot/config.txt
und folgende Zeile eingefügt
disable_camera_led=1
und den Raspberry neugestartet damit die Änderung aktiv wird
sudo reboot
Um die die Fotos und Videos direkt anschauen bzw. runterladen installieren wir noch einen Webserver
sudo apt-get install apache2
und erstellen einen Ordner
sudo mkdir /var/www/pictures
Als nächstes habe ich ein Script erstellt das alle x Sekunden die Kamera vom Raspberry Pi auslöst
sudo nano timer.sh
und folgendes Script eingefügt (das Script kann natürlich angepasst werden)
# Speicherort - Aufruf über http://<RaspberryIP>/pictures möglich SAVEDIR=/var/www/pictures while [ true ]; do # Dateinamen 04062013_0427-04 FILENAME=$(date -u +"%d%m%Y_%H%M-%S").jpg # maximale Auflösung 2592 × 1944 Pixeln /opt/vc/bin/raspistill -o $SAVEDIR/$FILENAME -n -w 2048 -h 1536 # Warte x Sekunden exkl. 5 Sekunden Kamera Vorlauf 895 + 5 = ca. 15 Minuten sleep 895; done;
Noch entsprechende Rechte setzen …
sudo chmod 755 timer.sh
dann kann auch schon das das Shell Script (durch das & Zeichen am Ende der Befehlszeile) im Hintergrund gestartet werden
sudo ./timer.sh&
Nach dem Start wird die Prozess ID (PID) ausgegeben. Diese wird benötigt um das Program wieder zu beenden
kill PID
Um aus den Bildern ein Video zu erstellen, habe ich das Tool mencoder genutzt, was Linux typisch schnell installiert ist
sudo apt-get install mencoder
Damit die Software weiß, welche Bilder in das Video sollen, muss eine Liste erstellt werden
cd /var/www/pictures ls *.jpg > pictures.txt
Danach kann mencoder mit den entsprechenden Parametern aufgerufen werden
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=12000000 -vf crop=1920:1080 -o output.avi -mf type=jpeg:fps=6 mf://@pictures.txt
Die vbitrate, fps und crop Einstellungen haben starken Einfluss auf Qualität und natürlich die Größe des Videos. Je nach Bedarf kann z. B. die vbitrate auf 4000000, crop auf 1280×720 und fps auf 24 gesetzt werden. Der Parameter crop schneidet die Bilder (die ich in 4:3 aufgenommen habe) auf das Format 16:9 zu. Es kann auch im Script die Auflösung angepasst werden.
Dann habe ich ein NFS Share gemountet (SMB geht auch aber NFS geht out of the box einfacher) und die Bilder / Videos an einen zentralen Ort gesichert.
sudo mkdir /storage sudo mount nas:/nfsshare /storage -o nolock cp /var/www/pictures/* /storage -u
nas = Hostname oder IP Adresse des NAS
nfsshare = NFS Freigabename
storage = das lokale Verzeichnis
Wenn mehrere Fotos zu einem Video zusammengestellt werden sollen, macht es Sinn diese Aufgabe auf einem schnelleren System auszuführen. Der Raspberry Pi ist damit sonst etwas überfordert 🙂