1945655

Überwachungssystem mit „Motion“ und Linux

16.06.2014 | 12:09 Uhr |

Das freie V4L-Aufnahmeprogramm Motion erkennt Bewegung. Mit einer handelsüblichen Webcam und einem Linux bauen Sie sich damit schnell ein günstiges und leistungsfähiges Überwachungssystem.

Die Open-Source-Software Motion befindet sich in den Repositoriesaller großen Linux-Distributionen. In diesem Beitrag zeigen wir, wie Sie mit wenig Geld ein hervorragend funktionierendes Video-Überwachungssystem realisieren. Motion verzichtet auf eine grafische Steuerung und muss über eine Konfigurationsdatei instruiert werden. Die dafür notwendigen Eingriffe sollten aber Linux-Bastlern keine Probleme bereiten. In unserem Beispiel verwenden wir Linux Mint 16 und Ubuntu als Systembasis. Die Einrichtung verläuft aber auch auf jedem anderen Linux analog.

Dieser Artikel stammt aus der LinuxWelt 3/2014

So klappt der Umstieg von XP zu Linux, Videoüberwachung mit Raspberry Pi einrichten, das beste Linux für jeden PC - das und mehr finden Sie in der neuen LinuxWelt 3/2014 .

Software- und Hardware-Voraussetzungen

Für diese Anleitung benötigen Sie im Wesentlichen ein Linux-System, eine Kamera und die genannte Software Motion.

Achten Sie beim Kauf einer externen Webcam auf Linux-Kompatibilität. Für einfache Ansprüche genügt auch die interne Kamera eines Notebooks.
Vergrößern Achten Sie beim Kauf einer externen Webcam auf Linux-Kompatibilität. Für einfache Ansprüche genügt auch die interne Kamera eines Notebooks.
© Amazon

Die Kamera: Bei der Wahl der Kamera ist Voraussetzung, dass diese mit dem V4L-Treiber (Video for Linux) kompatibel ist und als Gerät in der Form „/dev/videoX“ auftaucht. Das X steht für die Systemnummer der Kamera, und die Zählung beginnt bei 0. Die erste Kamera am System wäre „/dev/video0“, die zweite „/dev/video1“ und so weiter. In der Regel unterstützt V4L fast jede handelsübliche Webcam. Achten Sie aber beim Kauf einer externen Kamera auf explizite Linux-Kompatibilität. Die Zusammenstellung unter http://elinux.org/RPi_USB_Webcamsbietet eine gute Orientierung. Auch moderne Notebooks haben in der Regel eine Kamera eingebaut. Die allermeisten dieser Cams laufen mit dem V4L-Treiber. Wollen Sie vor der Investition einer externen Kamera das Prinzip erst einmal testen, können Sie diese Anleitung auch mit einer Notebook-Kamera nachvollziehen.

Nachdem Sie die Webcam an das Linux-System angesteckt haben, sollten Sie ein ordnungsgemäßes Funktionieren überprüfen. Sie realisieren das, indem Sie direkt nach Einstecken der Kamera den nachfolgenden Befehl ausführen:

dmesg | tail

Bei einem Notebook oder Netbookwird die Kamera bereits während desStarts initialisiert. Somit wäre die Erfolgsmeldung in den Systemmeldungen zu finden. Hier können Sie das Vorhandensein der Kamera auch testen, indem Sie diesen Befehl nutzen:

ls -ltrh /dev/video*

Damit überprüfen Sie ganz einfach, ob ein Gerät im System vorhanden ist, das den V4L-Treiber verwendet. Sollte mehr als eine V4L-fähige Kamera am Computer hängen, würden Sie mehrere Videogeräte als Ausgabe erhalten.

Mit dem Raspberry Pi die Wohnung überwachen

Motion installieren: Sie finden die Software etwa im Software-Center von Linux Mint oder Ubuntu. Hierüber oder alternativ im Terminal mit

sudo apt-getinstallmotion

ist die nur acht MB große Software schnell installiert. Zusätzlich sollten Sie das Paket „ffmpeg“ installieren, das Motion vorzugsweise für die Erstellungvon Videosequenzen verwendet. Im Terminal können Sie auch gleich beide Pakete in einem Aufwasch installieren:

sudo apt-get install motion ffmpeg
Schnell gefunden und schnell installiert: Das kleine Software-Paket Motion befindet sich in den Repositories aller namhaften Linux-Distributionen.
Vergrößern Schnell gefunden und schnell installiert: Das kleine Software-Paket Motion befindet sich in den Repositories aller namhaften Linux-Distributionen.

Bei der Installation weist Sie das Paket darauf hin, dass sich Motion nicht automatisch startet. Wenn Sie einen automatischen Start wünschen, editieren Sie dafür die Konfigurationsdatei „/etc/default/motion“. Hier finden Sie lediglich zwei Zeilen, wobei die erste ein Kommentar ist. Ändern Sie die zweite Zeile von „start_motion_daemon=no“auf „start_motion_daemon=yes“, so lädt sich Motion bei jedem Systemstart automatisch. Einen alternativen Autostart und dessen Vorteile erläutern wir weiter unten.

Die Open-Source-Software klinkt sich direkt in das Gerät „/dev/videoX“ein und analysiert das Bildmaterial. Ein in der Konfiguration definiertes Limit für sich ändernde Pixel bestimmt, wann Motion anspringt: Wird die vorgegebene Pixelzahl überschritten, wertet Motion das als Bewegung und kann entsprechend reagieren.

Erste Schritte und Anpassungen in Motion

Sie können die Überwachungskamera theoretisch ab sofort in Betrieb nehmen, indem Sie Motion im Terminal starten. Für eine erste Überprüfung der Funktionalität ist das gar keine schlechte Idee:

sudo motion
Das Linux-System hat die Kamera gefunden und aktiviert: Diese registriert sich als Gerät „/dev/video0“, was sich mit dem Befehl ls -ltrh /dev/video* verifizieren lässt.
Vergrößern Das Linux-System hat die Kamera gefunden und aktiviert: Diese registriert sich als Gerät „/dev/video0“, was sich mit dem Befehl ls -ltrh /dev/video* verifizieren lässt.

sudo ist notwendig, da lediglich root die Standard-Konfigurationsdatei lesen darf (mit einer Konfigurationsdatei-Datei im Home-Verzeichnis können Sie Motion auch mit normalen Benutzerrechten starten). Nach Aufruf des Befehls sehen Sie diverse Zahlen über den Bildschirm laufen. Wichtig ist dieletzte Zeile. Bei korrekter Konfiguration lautet diese: „[1] Startedstreamwebcamserver in port 8081“.

Das klingt gut, denn es belegt, dass die Hardware funktioniert. Bewegen Sie nun die Kamera oder sich selbst vor einem Notebook, reagiert die Software sofort und teilt uns die Daten der gespeicherten Bilder mit. Das Kamerabild könnten Sie nun mit einer geeigneten Software oder einem Browser sehen. Dafür ist Port 8081 zuständig. Per Standard ist Motion nun allerdings so konfiguriert, dass dies nur auf dem selben lokalen Rechner möglich ist. Stoppen Sie zunächst nach diesem ersten Test das Programm mit der Tastenkombination Strg-C.

Danach öffnen Sie die Standard-Konfigurationsdatei „/etc/motion/motion.conf“ mit einem Editor Ihrer Wahl, etwa mit gedit oder nano:

sudo nano /etc/motion/motion.conf

Die Datei ist ziemlich umfangreich. Suchen Sie nach der Zeile „webcam_localhoston“ und ändern diese in „webcam_localhost off“. Der Parameter befindet sich in der Sektion „# Live Webcam Server“. Nach gespeicherten Änderungen starten Sie Motion wie beschrieben ein zweites Mal. Nun können Sie von jedem Rechner im gleichen Netzwerk den Stream in einem Browser mit Eingabe der URL

http://<IP-Adresse>:8081

einsehen, also etwa mit der Eingabe von http://192.168.100.105:8081. Noch zuverlässiger funktioniert das Abgreifen des Streams mit dem VLCMediaplayer. Klicken Sie dazu auf „Medien -> Netzwerkstream öffnen“, und geben Sie im Eingabefeld die URL Ihres Überwachungsrechners ein.

Die Software läuft, streamt auf Port 8081 und reagiert auf Bewegung. Am einfachsten testen Sie das mit der Kamera eines Notebooks, indem Sie sich davor bewegen.
Vergrößern Die Software läuft, streamt auf Port 8081 und reagiert auf Bewegung. Am einfachsten testen Sie das mit der Kamera eines Notebooks, indem Sie sich davor bewegen.

Das Streamen über Port 8081 ist wichtig, wenn der Linux-Rechner oder ein Raspberry Pi ohne Monitor (headless) als Überwachungssystem arbeitet. Für den Einsatz von Motion ist keine grafische Oberfläche notwendig. Deswegen können Sie sich einen Monitor an diesem Gerät sparen.

Warum Linux so sicher ist

Wichtige Einstellungen der Konfigurationsdatei

Die umfangreiche Konfigurationsdatei „/etc/motion/motion.conf“ werden Sie im Laufe der Zeit immer wieder anpassen, um die Ergebnisse zu optimieren. Alles zu erklären, würde den Rahmen dieses Artikels sprengen, einige Parameter sind allerdings essentiell:

Relativ am Anfang finden Sie die Zeile „videodevice /dev/video0“. Sollte der Linux-Rechner nur eine Kamera haben, ist das so in Ordnung. Motion kann nämlich auch mit mehr als einer Kamera umgehen, benötigt dann aber jeweils eine eigene Konfigurationsdatei pro Kamera. Mit dem Aufrufparameter „-c“ und nachfolgendem Pfad lassen sich dem Programm mehrere Konfigurationen mitteilen:

sudo motion -c /[Pfad]/motion.conf
VLC ist erste Wahl, um den Stream von Motion abzugreifen. Somit realisieren Sie eine LiveÜberwachung der Gebiete, auf welche die Kamera gerichtet ist.
Vergrößern VLC ist erste Wahl, um den Stream von Motion abzugreifen. Somit realisieren Sie eine LiveÜberwachung der Gebiete, auf welche die Kamera gerichtet ist.

Je nachdem, wo sich die Konfiguration befindet, brauchen Sie dann nicht zwingend root-Rechte, also das vorangestellte sudo .

Ein Stück weiter in der „motion.conf“ finden Sie die beiden Zeilen „width 320“ und „height 240“, also Breite und Höhe des Bildes, das Motion ausgibt. Sie sollten die maximalen Werte der genutzten Kamera kennen und die Werte nicht überschreiten.

Die Bildgröße wirkt sich natürlich auch auf den Speicherplatz aus: Große Bilder in Kombination mit viel Aktion vor der Kamera produzieren große Datenmengen. Wir empfehlen, klein anzufangen und die Größen in kleinen Schritten anzupassen.

Weiter in der Konfigurationsdatei unter „Breite und Höhe“ finden Sie „framerate 2“. Die Ziffer steht für die maximale Bildanzahl, die pro Sekunde aufgenommen wird. Je höher die Zahl, desto mehr Bilder macht die Software und desto mehr Speicher wird benötigt. Auch hier sollten Sie beim Fein-Tuning behutsam vorgehen.

Der Parameter „auto_brightness“steht standardmäßig auf „off“. Billige Webcams bringen keine automatische Justierung der Helligkeit mit sich. Sollten Sie damit Probleme haben, können Sie Motion diese Einstellung überlassen. Direkt darunter finden Sie die Parameter „brightness“, „contrast“, „saturation“ und „hue“. Auch damit können Sie experimentieren und das Bild optimieren.

Dieser Abschnitt der Konfiguration ist das Herzstück der Bewegungserkennung. Hier legen Sie fest, wie viele Pixel sich ändern müssen, damit Motion dies als Bewegung interpretiert und Bilder aufzeichnet.
Vergrößern Dieser Abschnitt der Konfiguration ist das Herzstück der Bewegungserkennung. Hier legen Sie fest, wie viele Pixel sich ändern müssen, damit Motion dies als Bewegung interpretiert und Bilder aufzeichnet.

Sehr wichtig in der Konfigurations- Datei ist die Sektion „# Motion DetectionSettings“. Der erste Parameter „threshold“ bestimmt, wie viele Pixel sich in einem Bild ändern müssen, um als Bewegung interpretiert zu werden. Als Standard sind 1500 Pixel eingestellt. Sie können diesen Wert erhöhen – damit wird Motion unsensibler und produziert weniger Bildmaterial. Beachten Sie beim Threshold-Parameter den Zusammenhang mit der Bildgröße: Nach Änderungen der Breite und Höhe wächst die Gesamtzahl der Pixel: Bei den Standardeinstellungen haben Sie 76 800 Pixel pro Bild (320 x 240 Pixel). Setzen Sie die Größe etwa auf 640 x 480, sind das insgesamt 307 200 Pixel. Gilt dann aber immer noch unverändert ein „threshold“ von 1500 Pixeln, reagiert die Software wesentlich sensibler. Bei geänderter Bildgröße sollten Sie daher immer auch „threshold“ anpassen.

Sobald Motion eine Bewegung erkennt, speichert die Software Bilddateien im JPG-Format.

Zusätzlich wird nach jeder Bewegungssequenzeine SWF-Datei alskleiner Film geschaffen. Wo diese Dateien hinterlegt werden, bestimmt der Parameter „target_dir“ in der Konfigurationsdatei. Per Standard ist das „/tmp/motion“. Sie sollten dieses Zielverzeichnis unbedingt ändern, weil der Ordner „/tmp“ bei vielen Linux-Systemen nach einem Neustart gelöscht wird. Direkt darunter finden Sie den Eintrag „snapshot_filename“. Damit legen Sie die Dateinamen der Bilder fest. Die Standardeinstellung mit einem genauen Zeitstempel ist aber in Ordnung.

Die Konfigurationsdatei enthält ferner eine Sektion mit dem Titel „# ExternalCommands, WarningsandLogging“. Dort könnten Sie bei Erkennung einer Bewegung zu Beginn oder am Ende externe Befehle ausführen lassen. Denkbar ist zum Beispiel das Senden einer E-Mail oder das Abspielen eines Klangs.

Tipps zur Optimierung

Autostart: Wie im Haupttext beschrieben, kann die Aufzeichnungs-Software Motion über den eigenen Daemon automatisch laufen. Die betreffende Zeile in der Konfigurationsdatei lautet „daemon=on“. Damit sind Sie aber weniger flexibel als mit angepassten Starts – dies insbesondere beim Einsatz mehrerer Kameras am selben Rechner mit verschiedenen Konfigurationsdateien. Sie können Scripts bei Ubuntu oder Linux Mint mit Hilfe der Init-Datei „/etc/init.d/rc.local“ laufen lassen. Dort hinterlegen Sie einfach genau die Befehle, wie Sie diese im Terminal ausführen würden. Verwenden Sie am besten immer den vollständigen Pfad – standardmäßig „/usr/bin/motion“.

Zeitgesteuerter Start: Wenn die Aufzeichnung zum Beispiel nur nachts laufen soll oder ab einer bestimmten Uhrzeit, empfiehlt sich der Motion-Start über einen Cronjob. Da das Editieren der Datei „crontab“ etwas mühsam ist, verwenden Sie dafür das grafische Front-End gnomeschedule ( sudo apt-getinstallgnomeschedule ).

Hilfs-Tool Cheese: Wenn Sie die maximale Auflösung einer Kamera nicht ermitteln können, installieren Sie die Software Cheese. Sie befindet sich in der Regel in den Repositories der Distributionen und ist mit

sudo apt-getinstallcheese

schnell installiert. Starten Sie die Software, und klicken Sie dann auf „Cheese -> Einstellungen“. Im sich öffnendem Fenster finden Sie die maximale Foto- und Videoauflösung.

Auch Raspberry Pi kann Motion
Vergrößern Auch Raspberry Pi kann Motion

Auch Raspberry Pi kann Motion

Das für den Ein-Platinen-Zwerg Raspberry Pi entwickelte Standardbetriebssystem Raspbian basiert auf Debian GNU/Linux. Daher finden Sie Motion auch in RaspbiansRepositories und können auf dem Kleinstrechner die Open-Source-Software genauso installieren und in Betrieb nehmen, wie es hier in diesem Artikel beschrieben wurde. Der große Vorteil eines Raspberry Pi ist, dass der Winzling unter voller Belastung nur etwa vier Watt Strom verbraucht. Außerdemlässt sich der Minirechner bestens verstecken.

0 Kommentare zu diesem Artikel

PC-WELT Hacks - Technik zum Selbermachen?

Raspberry Pi erfreut sich gerade unter Bastlern einer großen Beliebtheit. Kein Wunder, denn mit der 35-Euro-Platine lassen sich viele spannende Projekte realisieren. Vom Mediacenter, Netzwerkspeicher, Fotomaschine bis hin zum Überwachungssystem ist alles möglich. Dieser Bereich ist aber nicht nur dem Raspberry Pi gewidmet, sondern bietet auch viele Tipps, Tricks und Anleitungen für andere spannende Bastelprojekte.

1945655