Webcamloader (🐧Debian / 08.25)
🚀 Vorwort
Der Webcamloader ist ein universelles 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 und 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/webcamloader/
-Verzeichnisses angelegt.
Bitte unbedingt Datenschutzbestimmungen beachten. Mehr dazu weiter unten im Haftungsausschluss.
⚙️ Funktionen im Wesentlichen
Das Script prüft zu Beginn, ob die Kamera erreichbar ist, lädt ein Testbild, errechnet anhand diesem den erforderlichen Speicher für die angegebene Gesamtbildanzahl, erstellt im nächsten Schritt Projektordner und Statusdatei und nimmt die Arbeit auf.
Falls ein Zeitfenster angegeben wurde, wird dieses berücksichtigt.
Im Fehlerfall wird der Benutzer benachrichtigt per Email, sofern angegeben.
Wenn ein Projekt abgeschlossen wurde, erhält man wahlweise eine Mail. Daraufhin kann man über einen Menüpunkt ein Video erstellen. Hierfür sind die FPS (Frame per second) nötig anzugeben.
Das Script bietet drei Modi zum Besorgen der Bilder, 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.
Für die Videoerstellung steht ein geführter Ablauf über das Menü zur Verfügung, der Schritt für Schritt und intuitiv durch den Prozess führt.
☝ Technische Hinweise
• Die Kamera-URL muss direkt auf ein Bild oder einen Videostream verweisen – nicht auf eine HTML-Seite oder Steueroberfläche.
• Für E-Mail-Benachrichtigungen muss der Server mail
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.
• Hinweis: Nicht jede Kamera wird unterstützt, da manche Videostreams nicht mit dem Script kompatibel sind. In solchen Fällen liefert die Kamera entweder ungeeignetes Material oder einen endlosen Stream, der das Script dauerhaft blockiert. Dieses Verhalten ist technisch bedingt und wurde im Rahmen der Möglichkeiten umfassend getestet.
Wenn die Kamera ein klares Einzelbild liefert, funktioniert alles reibungslos, bei Videostreams kann es jedoch zu Problemen kommen. Sollte ein inkompatibler Stream erkannt werden, verweigert das Script automatisch die weitere Verarbeitung.
Das Script ist ressourcenschonend und benötigt keine Root-Rechte. Es erzeugt keine externen Weiterleitungen außer zur Kamera selbst.
Die heruntergeladenen Bilder werden im vorher festgelegten Medien-Ordner gespeichert und können dort jederzeit angeschaut werden. Videos landen ebenfalls dort.
🧭 Das Menü
Hier sieht man das Hauptmenü, welches beim Aufruf ohne Parameter gestartet wird. Dieses ist nötig für den geführten Modus, der Videoerstellung, Projekte abzubrechen oder den Status laufender Projekte zu begutachten.
📷 Geführter Modus 🤝🏻
Der geführte Modus über das Hauptmenü ist die zentrale und benutzerfreundlichste Funktion des Webcamloaders.
Wird das Skript ohne Parameter aufgerufen, startet es automatisch im interaktiven Hauptmenü.
Hier erfolgt die Bedienung schrittweise und intuitiv – ganz ohne Kenntnisse über Parameter oder deren Syntax. Besonders für Einsteiger ist dieser Modus ideal: Alle Einstellungen werden nacheinander abgefragt und erklärt, sodass man sicher und zielgerichtet zum gewünschten Ergebnis kommt.
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. Auch ein Video lässt sich hier erstellen, diese Funktion ist im Videosektor genauer erklärt. 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.
Hier sieht man die Durchführung des geführten Modus', bei dem beispielhaft Daten eingetragen wurden
📷 Quicky-Modus 💨
Der Quicky-Modus ist für erfahrene Benutzer gedacht, die ein Projekt schnell starten möchten.
Nach Übergabe aller erforderlichen Parameter zeigt der Webcamloader eine Zusammenfassung inklusive Berechnung der Aufnahmedauer. Mit ENTER kann das Projekt sofort gestartet werden.
Aufruf:
./webcamloader.sh quicky -u <URL> -n <Name> -b <Anzahl> -i <Intervall> -e <E-Mail> -f <Funktion> -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
E-Mail für die Benachrichtigung (optional).-f
Funktion/Ausführung - 0 oder 1 (optional).-t
Zeitfenster im Format 8-18 (optional).
./webcamloader.sh quicky -u "http://192.168.7.199/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=0&user=user1&password=passwort" -b 15000 -p 15 -n "Vordach" -e "name@domain.tld" -f 0 -t 7-20
./webcamloader.sh quicky -u "http://192.168.7.199/mjpg/video.mjpg" -b 15000 -p 15 -n "Vordach" -e "name@domain.tld" -f 0 -t 7-20
Hier sieht man demonstrativ und beispielhaft zwei Varianten im schnellen Quicky-Modus. Hier übergibt man alles, was wichtig ist, einmal dem Script und es kann dann nach einer Bestätigung die Arbeit beginnen. Beide Varianten haben als Beispiel 15.000 Bilder mit einem Intervall von 15 Sekunden.
Zeile 1 zeigt eine Reolink-Kamera mit Passwortschutz (via URL) und Zeile 2 zeigt einen MJPEG-Videostream ohne Passwortschutz.
📷 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> -b <Anzahl> -i <Intervall>
Parameter im Einzelnen:-u
Kamera URL komplett mit http(s).-n
Projektname. Freier Name für das Projekt.-b
Folgebilder (optional).-i
Intervall (optional).
./webcamloader.sh cron -u http://192.168.7.199/cgi-bin/faststream.jpg -n "Testkamera"
./webcamloader.sh cron -u http://192.168.7.199/cgi-bin/faststream.jpg -n "Testkamera" -b 2 -i 4h
Der Cron-Aufruf wie hier beispielhaft zu sehen, ist dasselbe Thema wie bei Quicky, nur einmalig ein Bild. Die Daten von Quicky sind hier auch parallel anzuwenden. In Zeile 1 sieht man einen normalen, einmaligen Aufruf wie es standard- & zweckmäßig beim Script mit Cron erwartet wird, bei Zeile 2 sieht man einen Folgeauftrag, der dann 2 Bilder im Abstand von 4 Stunden macht.
Hier wird als Beispiel um 12:00 Uhr ein Cronjob gestartet mit der Ausführung um ein Bild. Dann erfolgt nach 4 Stunden das Bild 2.
Hier könnte man auch klassisch einen Cronjob mit einer Einmalausführung mit 00 12,16 * * * anlegen, hier passiert genau dasselbe.
📷 Bildherstellung Zusammenfassung 📋
Die Zusammenfassung ist bei den Varianten vom geführten Modus und des Quickys gleich. Hier eine Übersicht der Zusammenfassung, die in den Fällen bestätigt werden muss.
Hier wieder beispielhafte Daten. Zum Thema Berechnung, zum Zeitpunkt dieses Bildes ist der 25.07.25, 21:45. Mit 24/7 Aufnahme und Intervall von 25 Sekunden mit 15.000 Bildern dauert die Bildspeicherung also ca. 4,5 Tage.
📊 Status laufender Projekte
Unter diesem Menüpunkt lässt sich der aktuelle Status aller laufenden Projekte einsehen. Die Übersicht ist besonders hilfreich zur Kontrolle – etwa wenn ein Projekt aufgrund von Netzwerkproblemen nur selten neue Bilder liefert.
Der Status wird visuell durch ein ✔ (alles in Ordnung) oder ein ✖ (Problem erkannt) angezeigt. Zusätzlich ist ersichtlich, ob beim Start des Projekts eine Benachrichtigungs-E-Mail aktiviert wurde.
Wichtig:
Projekte, die per Cron gestartet wurden, gelten technisch als immer abgeschlossen und erscheinen nicht in dieser Übersicht.
Die Tabelle enthält folgende Informationen:
- Projektnummer (ID)
- Projektname
- Bilder (Bildanzahl IST / SOLL)
- Intervall
- letzte Aktion (Download oder Fehler)
- errechnete Fertigstellung
- Benachrichtigung aktiv? (als ✖ oder ✔)
- Projekt OK? (als ✖ oder ✔)
- Fertigstellung in %
Außerdem werden die Projekte aufgezählt.
🚩 Fertige Projekte
Sobald ein Projekt abgeschlossen ist – entweder durch Erreichen der definierten Bildanzahl oder durch manuellen Abbruch bei aktiviertem unbegrenztem Download – wird es unter dem Menüpunkt Fertige Projekte aufgelistet.
Hier werden alle beendeten Projekte zentral gesammelt. Dieser Schritt ist zwingend notwendig für die spätere Videoerstellung - an diesem Menü führt kein Weg vorbei.
Wichtig:
Projekte, die per Cron gestartet wurden, gelten technisch als immer abgeschlossen und erscheinen grundsätzlich in dieser Übersicht. Sie gelten immer als fertig und können zu jeder Zeit ein weiterverarbeitet werden.
Die Tabelle enthält folgende Informationen:
-
Projektnummer (ID)
-
Projektname
-
Bildanzahl
-
Intervall (nur bei manuell gestarteten Projekten sichtbar, also nicht via Cron)
-
Aufnahmedatum (als Zeitraum von–bis, als einzelner Tag oder bis heute).
❌ Projekt abbrechen
Coming soon!
🎥 Videoerstellung
Im oben erwähnten Menü zur Bilderstellung ist die Videoerstellung ebenfalls ein Punkt davon. Darüber lassen sich mit fertigen, abgeschlossenen Projekten ein Video erstellen. Im geführten Ablauf wird zunächst die gewünschte Bildrate (FPS – Frames per Second) abgefragt. Danach folgt eine Zusammenfassung aller relevanten Angaben zur Kontrolle. Da FPS und Bildanzahl maßgeblich die Videolänge beeinflussen, sollte hier sorgfältig geprüft werden. Dieses landet dann ebenfalls im Medienverzeichnis, parallel zu den Bildern. Ist das Video fertig, kann man das Projekt abschließen oder die FPS erneut mit anderem Wert setzen, sollte das Ergebnis des Videos nicht befriedigend sein. Wird das Projekt abgeschlossen, wird das rohe Projekt, also die Bilder als solches, gelöscht. Das Video bleibt selbstverständlich erhalten.
Hier zu sehen ist das Menü für die Videoerstellung bis hin zur 📋 Zusammenfassung.
⚠️ Haftungsausschluss (Disclaimer)
Allgemein
Hinweis zum Datenschutz:
Die Erfassung und Speicherung von Kamerabildern unterliegt der DSGVO und ggf. weiteren gesetzlichen Regelungen. Insbesondere bei Personenerkennbarkeit ist eine vorherige Klärung und ggf. Meldung verpflichtend.
Ich übernehme keine Haftung für:
-
missbräuchliche Verwendung
-
technische Schäden
-
Datenschutzverletzungen jeglicher Art
Die Erfassung und Speicherung von Kamerabildern unterliegt der DSGVO und ggf. weiteren gesetzlichen Regelungen.
Insbesondere bei Personenerkennbarkeit ist eine vorherige Klärung und ggf. Meldung verpflichtend.
Nutze dieses Tool verantwortungsvoll und transparent – ausschließlich im Rahmen geltender Gesetze.
Öffentliche Kameras
💾 Script Download
Das Programm kann hier in immer der neuesten Version heruntergeladen werden:
Webcamloader Script (via mariobeh.de)
Webcamloader auf Github
Ich bitte um Verständnis, wenn ich das Programm selbst vertreiben möchte. Das Script gibt es auch auf Github aber auf dem Server hier ist die Version stets aktuell.
Nur in Deutsch verfügbar, Umbau auf anderen Sprachen auf Anfrage.
Vielen Dank,
mariobeh.
No Comments