Skip to main content

Webcamloader (Debian / 07.2025)

Der Webcamloader ist ein universelles Headless-Bash-Script zur automatisierten Erfassung von Kamerabildern. Es eignet sich ideal für den Einsatz bei Baufortschrittsdokumentationen, Wetter- und Landschaftsbeobachtungen, Langzeitstudien und ähnlichen Zeitraffer-Projekten.

Das Script lädt in regelmäßigen Intervallen Einzelbilder von Bildquellen oder Videostreams herunter und speichert diese lokal. Die Bilder können später zu einem Zeitraffer-Video weiterverarbeitet werden.

Unterstützte Quellen: Bildquellen: z. B. snapshot.jpg, snapshot.cgi und Videostreams: z. B. faststream, motion-jpeg, video.cgi.

Das Script speichert alle Daten zentral unter /home/$USER/script-data/webcamloader/
Darin befinden sich: Projektverzeichnisse, Statusdaten, Logfiles, Konfigurationen. Optional kann ein abweichender Medienordner (z. B. auf einer externen Festplatte) angegeben werden. Falls keiner definiert ist, wird der Medienpfad automatisch unterhalb des script-data-Verzeichnisses angelegt.

Funktion im Wesentlichen erklärt:
Das Script prüft zu Beginn, ob die Kamera erreichbar ist, lädt ein Testbild, errechnet anhand diesem die erforderliche Größe für die Bildanzahl, erstellt im nächsten Schritt Projektordner und nimmt die Arbeit auf.
Falls ein Zeitfenster angegeben wurde, wird dieses berücksichtigt.
Im Fehlerfall wird der Benutzer benachrichtigt per Email, sofern angegeben.

Das Script bietet drei Modi, die weiter unten genauer erklärt werden:
• Menü: Interaktives Menü mit allen Funktionen.
• Quicky: Komplette Steuerung via Argumente, kein Menü.
• Cron: Einmalaufrufe, zeitgesteuert z. B. über Crontab.

Technische Hinweise:
• Die Kamera-URL muss direkt auf ein Bild oder einen MJPEG-Stream verweisen – nicht auf eine HTML-Seite oder Steueroberfläche.
• Für E-Mail-Benachrichtigungen muss der Server mail oder sendmail installiert und korrekt eingerichtet haben.
• Bei dem Funktionsschalter gilt: -f 0 ist Hintergrundmodus (keine Ausgabe), -f 1 ist Vordergrundmodus, komplette Ausgabe. Falls Ausgabe erwünscht ist, wird das Programm screen empfohlen, da beim Schließen des Terminals auch das Script beendet wird.
• Wird keine Funktion -f angegeben, startet automatisch der Vordergrundmodus.

Das Script ist ressourcenschonend und benötigt keine Root-Rechte. Es erzeugt keine externen Weiterleitungen außer zur Kamera selbst.

 

=== FUNKTIONSWEISE Menü ===

Der Menümodus ist die klassische und interaktive Hauptfunktion des Webcamloaders. Wird das Script ohne Parameter aufgerufen (./webcamloader.sh), startet automatisch das Hauptmenü. Dieses ermöglicht eine geführte Bedienung, ohne dass man die Parameter auswendig kennen oder mitgeben muss. Es eignet sich besonders für neue Benutzer oder Projekte, bei denen man Schritt für Schritt durch die Einstellungen geführt werden möchte.

Im Menü kann zwischen verschiedenen Aktionen gewählt werden: Ein neues Projekt starten, ein bestehendes Projekt fortsetzen, Einstellungen ändern, den Status prüfen oder das Projekt abbrechen. Der Einstieg erfolgt über die Eingabe grundlegender Informationen wie Kamera-URL, Projektname, Anzahl der Bilder und Aufnahmeintervall. Optional kann ein Zeitfenster für die aktiven Aufnahmezeiten angegeben werden. Außerdem besteht die Möglichkeit, eine Benachrichtigungs-Mailadresse zu hinterlegen und zu entscheiden, ob die Ausgabe im Vordergrund oder still im Hintergrund erfolgen soll.

Sobald alle Angaben gemacht wurden, erhält man eine Übersicht mit geschätztem Speicherbedarf und Laufzeit. Mit einem einfachen Tastendruck startet die Aufzeichnung. Auch nach Projektstart können noch Informationen zum Projektstatus abgerufen oder Einstellungen angepasst werden, etwa um das Projekt frühzeitig zu beenden oder ein neues zu beginnen.

Der Menümodus ist somit der flexibelste und komfortabelste Weg, ein Zeitraffer-Projekt zu starten, und bietet zugleich volle Kontrolle über den Ablauf – ohne direkte Kommandozeilenparameter.

 

=== FUNKTIONSHINWEISE Quicky-Modus ===

Der Quicky-Modus ist gedacht für schnelles Beginnen eines Projekts. Nach Übergabe aller erforderlichen Parameter erhält man eine Zusammenfassung mit Berechnung der Aufnahmedauer und kann mit ENTER das Projekt beginnen.

Aufruf: ./webcamloader.sh quicky -u <URL> -n <Name> -b <Anzahl> -i <Intervall> -e <E-Mail> -f <Funktion 0|1> -t <Zeitfenster>

Parameter im Einzelnen:
-u = Kamera URL komplett mit http(s).
-n = Projektname. Freier Name für das Projekt.
-b = Bilderanzahl für das Gesamtprojekt.
-i = Intervall für die Pausenzeiten zwischen den Bilderdownloads.
-e = Email (optional) für die Benachrichtigung (optional).
-f = Funktion/Ausführung - 0 oder 1 (optional).
-t = Zeitfenster im Format 9-8-18 (optional).

=== FUNKTIONSHINWEISE Cron-Modus ===

Der Cron-Modus ist ein Einmalaufruf, bei dem genau ein Bild gespeichert wird. Dieser ist gedacht für Langzeitaufnahmen mit Bild einmal am Tag per Crontab. Dabei können auch Folgebilder gesetzt werden. Dies ist sinnvoll, wenn der Cron-Befehl um 12:00 Uhr losgeht aber man nochmal ein Bild um 16:00 Uhr haben möchte. Klar könnte man den Crontab als 12,16 kennzeichnen - man könnte hier auch 2 Bilder definieren im Abstand von 4 Stunden. Ist Geschmackssache.

Aufruf: ./webcamloader.sh cron -u <URL> -n <Name> -x <Anzahl> -y <Intervall>

Parameter im Einzelnen:
-u = Kamera URL komplett mit http(s).
-n = Projektname. Freier Name für das Projekt.
-x = Folgebilder (optional).
-y = Intervall (optional).


Die herunterladenenheruntergeladenen Bilder werden unter dem Medien-Pfad, wie eingangs definiert, angesehen werden. Videos ebenfalls, sofern sie übers Menü des Scripts generiert wurden.

Das Programm kann man hier in immer der neuesten Version herunterladen und sich zunutze machen:

Webcamloader Script 
(via mariobeh.de)

Vielen Dank, 
mariobeh.