Stay in motion – Webcam

Bilder des Typs »normal«

Bilder des Typs »normal«

Webcams sind eine schöne Erfindung. Nicht nur, dass man mit ihnen Videotelefonate führen kann! Besonders toll sind sie, wenn Livebilder eines Standortes ins Internet gestellt werden. In meiner Heimatstadt Coburg gibt es solch eine Webcam bspw. auf dem Marktplatz, so dass man Live vor Ort sein kann, wann immer man möchte.

Bilder von einer Webcam in bestimmten Intervallen speichern, bzw. sobald sich etwas bewegt, ist gar nicht so schwierig wie man anfangs vielleicht denkt. Dazu gibt es sogar verschiedene Programme, von denen ich eines aus den Repositorys vorstellen möchte. Es nennt sich Motion.

Anmerkung: Ich gehe im Folgenden nur auf die lokale Speicherung von Webcambildern ein, nicht auf das Streamen im Internet.

Achtung: schnell gerät man in einen Bereich, der sich »Videoüberwachung« nennt, der rechtlich sehr brisant ist. Darum: lieber erstmal im Garten oder Zimmer probieren als gleich die Straße vor dem Haus ins Visier zu nehmen. 😉

 

Motion lässt sich in den meisten Distributionen über ein einfaches

sudo apt-get install motion

bzw. die Entsprechung eines anderen Paketmanagers installieren. Im Gegensatz zu dem Programm ZoneMinder müssen hierbei nicht gleich alle PHP- und MySQL Bibliotheken heruntergeladen werden.

Motion ist ein Programm, dass mit einem Daemon läuft, den man jedoch deaktivieren kann. Da ich dieses Programm nur getestet habe und immer wieder Konfigurationen vornahm, habe ich den Daemon gleich deaktiviert. Motion lässt sich über eine Konfigurationsdatei steuern, die sich standardmäßig in /etc/motion/ befindet. Um meinen anderen Programmen treu zu bleiben, habe ich mir allerdings im Homeordner einen Ordner namens .motion angelegt und eine neue Konfigurationsdatei geschrieben. Diese hat folgenden Inhalt:
videodevice /dev/video1
pre_capture 0
auto_brightness on
framerate 3
daemon off
target_dir /home/benni/motion
locate on
output_motion off
output_normal on
output_all off
height 240
width 320
lightswitch 50
v4l2_palette 0

Pfad zum GerätWer nicht weiß, was er bei videodevice hinschreiben soll, der kann den Pfad bspw. über den Webcamautomat Cheese (sudo apt-get install cheese) erfahren: Cheese starten, BearbeitenEinstellungen und unter Kamera sieht er im Dropdown den entsprechenden Gerätepfad.

Mögliche Einstellungen:

Einstellung Bedeutung
pre_capture Sekunden, die vor der Bewegung gespeichert werden
auto_brightness Automatische Helligkeit (bei Kameras ohne eigene Regulierung)
framerate Bilder pro Sekunde (Standard: so viele die Kamera hergibt)
daemon Daemon starten (Standard: on)
target_dir Speicherort der Bilder
locate Bewegung im Bild einrahmen?
output_motion Reines Bewegungsbild ausgeben? (s/w, da nur der Unterschied zum vorhergehenden Bild angezeigt wird, Beispiel)
output_normal Bewegungsbild im Original ausgeben, Beispiel
output_all Permanent Bilder speichern, auch bei Nichtbewegung
snapshot_interval Schnappschuss in diesem Intervall speichern*
height, width Bildauflösung
lightswitch Helligkeitsschwankung akzeptieren
v4l2_palette Palette, die video4linux benutzen soll**

*) Es wird ein symbolischer Link auf jeweils den letzten Snapshot gelegt, so dass jeweils das neuste Bild über den Namen lastsnap.jpg ansprechbar ist.

**) Motion basiert auf dem video4linux-Treiber, mit dem erkannt wird, ob sich etwas bewegt hat, oder nicht. Was die einzelnen Paletten bedeuten, sieht man in der Beispieldatei ab Zeile 31 (/etc/motion/motion.conf), allerdings unterstützen nicht alle Kameras alle Paletten.

Wenn man nicht die voreingestellte, sondern die eigene Konfigurationsdatei starten möchte, muss man beim Startbefehl noch den Pfad dazu eingeben. Der Start sieht dann z.B. so aus:

$ motion -c /home/benni/.motion/config.cfg
Bilder des Typs »motion«

Bilder des Typs »motion«

Wenn man sich – wie ich – dazu entscheidet, keine Videos aufzunehmen (auch das ist mit Motion möglich), die Bewegungen aber nicht im Einzelbild nachvollziehen möchte, dann ist man mal wieder bei Imagemagick gut aufgehoben! Man öffnet ein Terminal und begibt sich in den Ordner, den man mit target_dir festgelegt hat. Nun tippt man folgendes ins Terminal ein und steuert nachträglich über ein Menü, das per Klick auf das Ergebnis erscheint, die Geschwindigkeit:

$ animate *

Alternativ kann man die Bilder auch in einem Raster anordnen, so wie auf den Beispielbildern zu sehen ist:

$ montage -geometry +1+1 * alle.jpg

Doch das sind noch lange nicht alle Fähigkeiten, die Motion bietet. Man kann mit seiner MySQL herumspielen, die Bilder ins Netz stellen, Videos aufnehmen (diese mit ffmpeg gleich konvertieren), Farben, Kontraste und Helligkeit einstellen, die Kamera bewegen (wenn es eine bewegliche Kamera ist), Ton einbinden, benutzerdefinierten Text einblenden und und und…

Um Motion als eine Art Kameraüberwachung zu nutzen (Vorsicht!!), kann man bei verschiedenen Events Drittkommandos ausführen lassen. Ich bekomme z.B. ein kurzes akustisches Signal, sobald sich etwas bewegt. Hierzu fügt man nur diese Zeile in die Konfigurationsdatei ein:
on_motion_detected echo -e "\a"
Alternativ auch über das Paket beep. Am besten ihr testet es selbst einmal mit eurer Webcam. Die unterschiedlichsten Einstellungen für die Konfigurationsdatei findet ihr unter

man motion

Viel Spaß damit! 🙂

 

PS: Dieser Artikel gehört auch zur Blogparade »Exotische Linux-Applikationen« von Roman von ubuntublog.ch

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert