Wetterstation-Wolkenbilder

Mit einer ausrangierten (weil defekt gewesenen) Canon-A60 - Kamera wird so alle 10 oder 20 Sekunden ein Bild aufgenommen.

Man darf gespannt sein, wie lange die Kamera das durchhält, alle paar Sekunden scharf zu stellen und auszulösen. Start: Anfang Oktober 2006. Es fallen zwischen 1000 und 2000 Bildern pro Tag an. Im Februar 2007 nach ein paar hunderttausend Aufnahmen sind immer noch keine Schwächen erkennbar.

Die Aufnahmerichtung wechselt, es wird aber darauf geachtet, dass die Kamera kein direktes Sonnenlicht in die Linse bekommt.

Aufbereitung der Daten

Täglich oder wöchentlich werden die Bilder von der Kamera auf den PC übertragen. Die Bilder werden beschnitten, damit keine Personen im Bild bleiben. Außerdem wird der Dateiname angepasst, so dass er dem Datum aus den EXIF-Daten entspricht.

Die Bilder werden zu Videos zusammengefasst, sofern sie interessant genug sind...

In der Zeitschrift c't (Heft 21/2006 S.216, Softlink http://www.heise.de/ct/06/21/links/216.shtml ) wurde beschrieben, wie Videos am besten ins Internet gestellt werden können. Auf dieser Art werden auch meine Videos eingestellt. Weitere Details siehe unten.

Technik

Nach vorsichtigem öffnen der Kamera wurde am Auslöseknopf der Kamera dünne Drähtchen mit lötbarer Lackisolierung festgelötet und auf eine Buchsenleiste geführt, die draußen am Gehäuse festgeklebt wurde (hässlich, aber zweckmäßig).

Eine externe Elektronik versorgt die Kamera mit Strom und verbindet in einstellbaren Intervallen (alle 10 oder 20 Sekunden) die 2 Drähtchen miteinander. Damit wird ein Bild aufgenommen.

Die nach außen gelegten Anschlüsse zur Kamera sind extrem empfindlich bereits gegen leichtes Berühren mit der Hand. Bei langen Leitungen (ab 30cm) leidet die Zuverlässigkeit, die Kamera löst teilweise nicht mehr aus und die Tasten sind blockiert oder verhalten sich sonderbar.

Daher wurde zur Ansteuerung ein Optokoppler direkt an der Kamera montiert. Beim Typ CNY17 ist ein Leckstrom von max. 50nA spezifiziert. Andere Optokoppler mögen ebenfalls funktionieren, jedoch ist im Datenblatt oft kein Leckstrom angegeben.

Die elektronische Schaltung besteht aus einem Mikrontroller und einem Helligkeits-Sensor, der dafür sorgt, dass nur Bilder aufgenommen werden, solange es hell genug ist.

Die Bildgröße wird an der Kamera meistens auf 1024 x 768 eingestellt. Bei ca. 80 KByte pro Bild wird eine 128MB-Speicherkarte innerhalb eines Tages voll. Beim der momentan eingesetzten 4GB - Karte kann auch ein Kurzurlaub überbrückt werden. Für Videos reicht im Prinzip auch eine Auflösung von 640 x 480 Pixel. Die Dateien sind dann im Schnitt nur noch ca. 42KByte groß.

Die automatische Abschaltung der Kamera nach jeweils 20 Minuten Betriebsdauer kann zum Glück über das Menü der Kamera deaktiviert werden.

Datenübertragung von der Kamera zum PC

Die Datenübertragung zum PC erfolgt mit dem normalen Kamerakabel und der Canon-Software sehr langsam, über 1 Stunde für die Bilder eines Tages. Hier sollte eine schnellere Methode gefunden werden.

Canon SDK
Über das Canon Software Development Kit kann die Kamera direkt über Windows-API angesprochen werden. Leider dauert das Übertragen der Dateien und das Löschen derselben genauso lang wie mit den normalen Windows-Möglichkeiten. Einziger Vorteil: der Vorgang kann vollständig automatisiert werden und läuft ohne Benutzer-Eingriff ab. Dauer: über 1 Stunde pro Tag

Card Reader
Über einen Card Reader wäre eine schnellere Übertragung denkbar, aber jedesmal die Karte aus der Kamera zu ziehen scheint mir keine gute Lösung zu sein. Aber ein Versuch zeigt, dass dies eine prinzipiell schnelle Übertragungsmethode ist:

Die Datenorganisation auf der Karte ist etwas seltsam: je 100 Bilder in ein Verzeichnis zusammengefasst. Die Übertragung von 4419 Bildern (also die Aufnahmen von mehr als 2 Tagen) zum PC dauert nur knapp 15 Minuten. Das Löschen dauert weitere 7 Minuten. Aus den separaten Verzeichnissen zusammenfassen: 1 Minute. Umbenennen mit JHead.exe (Dateiname entsprechend dem EXIF-Datum) 1 Minute.

Mit einem guten Card-Reader (siehe Vergleichstest c't 24/2006) sind 18MByte/Sekunde möglich, 1GByte könnten dann in knapp 1 Minute übertragen sein, wenn die Karte mitspielt...

Vom Kartenleser eines Druckers über USB per XCOPY: 350KByte / Sekunde

Beispiel: 26500 Bilder 1024x768 auf knapp 4GByte. 1425 Sekunden für das Kopieren (XCOPY) auf Platte. Löschen dauert länger: 6800 Sekunden.

Ich habe mich daran gewöhnt, dass es etwas länger dauert.

Bilder zu Video zusammenfassen

Das für die Veröffentlichung benötigte Flash-Video - Format (*.flv) wird vom Programm ffmpeg.exe erzeugt, das als Eingabe eine Datei im MPEG - Format erwartet.

Da teilweise recht schnelle Wolkenbewegungen vorkommen, die Unterschiede von einem Bild zum nächsten wegen der MPEG-Codierung nicht zu groß sein dürfen und weil bei bei 25 Frames pro Sekunde leicht alles hektisch wirkt, empfiehlt es sich, mindestens alle 20 Sekunden ein Bild auzunehmen.

ImageMagick
Die Erzeugung des MPEG-Films geschieht durch die entsprechende convert-Funktion von ImageMagick. Ein Versuch mit 1300 Einzelbildern dauerte zwar fast 24 Stunden, beanspruchte 2GByte RAM, die maximal mögliche Auslagerungsdateigröße sowie 6GByte temporäre Dateien,bevor es mit einer Fehlermeldung abbrach (corrupted file *.jpg, could not write temporay file).

Allerdings waren die Bilder verhältnismäßig groß (1024x768) und es wurde nach mpeg-2 codiert. Wenn die Bilder zuvor auf MPEG-Format 720x576 oder kleiner skaliert werden, reduziert sich die Dauer auf ca. 5 Sekunden pro Bild.

Bei Beschränkung auf halbes MPEG-2 - Format (360x288) läuft die Konvertierung mit angenehm schnellen 1..3 Sekunden pro Bild.

ImageMagick erledigt auch gleich alle Skalierungen und Randanpassungen.

Windows MovieMaker
Mit dem Windows MovieMaker werden Einzelbilder innerhalb des erzeugten Videos im 5-Sekunden-Abstand dargestellt. Falls es die Möglichkeit gibt, den Abstand zu verkleinern, bleibt noch der Umstand, dass der Windows MovieMaker nur eine WMF- Datei erzeugt und eine weitere Konvertierungen nach MPEG notwendig ist.

ffmpeg.exe
Die Umwandlung der MPEG-2 - Videos in FlashVideo geschieht mit ffmpeg.exe, erhältlich unter http://ffmpeg.mplayerhq.hu/.

Es wird mit 25 fps gearbeitet. Als Bitrate werden 768 bps verwendet. Die Konvertierung (2-pass) läuft rasend schnell.

Weitere Konvertierungssoftware
Bilder zu einem Video zusammenfassen erledigt http://virtualdubmod.sourceforge.net/ , http://www.erightsoft.com/S6Kg1.html konvertiert fast beliebige Videoformate ineinander.

http://www.pcgo.de/common/forum/forum.php?id=35008943&forum=31&dsp_start=-1&expand=1 ...mit dem Stoik Video Converter (www.stoik.com) in AVI wandeln, dabei die Anleitung gut lesen, die Codec-Einstellung ist etwas versteckt. Dann wenn nötig mit TmpgEnc (www.tmpgenc.net) in MPG wandeln.

Bilder im Internet bereitstellen

Wie im oben genannten Artikel der Zeitschrift c't ausführlich beschrieben, wird ein Player in einem Verzeichnis der Homepage eingebettet. In diesem Fall ist es der unter Apache laufende FlowPlayer, der auf http://flowplayer.sourceforge.net/ zu finden ist.

Als Ausgangspunkt für alle Videos dient eine Seite, auf der alle Filme mit einem repräsentativen Bild vorgestellt werden.

Stand: Februar 2007 Autor: Peter Roth