Kamerazentrale mit motionEye

rbpmotioneye (Andere)In diesem Artikel habe ich gezeigt, wie eine lokale Kamera mittels motion und in diesem Beitrag mittels mjpg-streamer im Netz bereitgestellt werden kann. Nennt man mehrere Raspberry und/oder IP-Cams sein eigen, wäre es nützlich, alle Streams auf einer einzelnen Seite betrachten zu können. Hier kommt motioneye ins Spiel, das mit einer eigenen motion-Instanz eine Webseite mit den gewünschten Funktionen bereitstellt.

 

 

 

 

 

screenshot
Quelle: http://www.howtoembed.com/projects/raspberry-pi/95-motioneye-with-raspberry-pi

 

Einleitung

Es spielt in diesem Beitrag keine große Rolle, ob motioneye auf einem Raspberry oder einem (virtuellen) Linux-Server installiert wird, die Vorgehensweise ist ähnlich. Ich würde jedoch empfehlen, motioneye nicht auf einem Raspberry zu betreiben, insbesonders wenn für mehrere Kameras die Bewegungserkennung genutzt werden soll. Dieser Vorgang ist verständlicherweise sehr rechenintensiv und könnte eventuell auf einem Raspberry Version 2 laufen. Bei mir wird motioneye auf einem virtuellen Linux Server im Keller betrieben, da 5 Kameras eingebunden werden welche (zeitweise) auf Bewegung überwacht werden. Ausprobieren geht natürlich immer.

 

Aktualisierung

Zunächst aktualisieren wir unser System mit:

apt-get update && apt-get upgrade

und starten das System ggf. neu.

 

Abhängigkeiten installieren

Nun installieren wir mit einem Paketmanager die benötigten Abhängigkeiten mit dem Aufruf von

apt-get install python-pip python-dev libssl-dev libcurl4-openssl-dev libjpeg-dev motion ffmpeg v4l-utils

 

Wenn auf dem System, auf dem wir motioneye einsetzen, keine lokale Kamera angeschlossen ist, dann reichen die folgenden Pakete:

apt-get install python-pip python-dev libssl-dev libcurl4-openssl-dev libjpeg-dev

 

Motioneye „installieren“

Das Herunterladen und die Installation wird mit dem Python-Installationsprogramm „pip“ durchgeführt:

pip install motioneye

 

Bei meinem System wollte motioneye wegen eines fehlenden Python-Moduls nicht starten, eine manuelle Installation half bei diesem Problem:

pip install pytz

 

Konfiguration

Wir kopieren die Demo-Konfigurationsdatei in ein neu erstelltes Verzeichnis für motioneye unter „/etc„:

mkdir -p /etc/motioneye
cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf

 

 

Die Konfigurationsdatei editieren wir mit einem Texteditor der persönlichen Vorliebe, hier sei beispielhaft nano genannt:

nano /etc/motioneye/motioneye.conf

 

Als grundlegende Konfiguration können die meisten Einstellungen übernommen werden, lediglich den Port sowie das Prüfungsintervall, ob der motion-Prozess noch läuft, sollte angepasst werden. In meinem Fall verwende ich den Port 88 sowie ein Prüfungsintervall von 20 Sekunden, so dass sich die beiden folgenden, geänderten Zeilen ergeben:

port 88
motion_check_interval 20

 

Den Editor nano können wir mit der Tastenkombination STRG+x verlassen und bestätigen die Frage, ob die Änderungen gespeichert werden sollen.

Letztlich erstellen wir das Medienverzeichnis für motioneye:

mkdir -p /var/lib/motioneye

 

Automatischer Start

Mittels system.d (z.B. Debian 8)

Damit motioneye beim Systemstart automatisch geladen wird, kopieren wir ein bei der Installation mitgeliefertes system.d-Startscript in den dafür vorgesehenen Order und aktivieren den Autostart:

cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service
systemctl daemon-reload
systemctl enable motioneye

 

Mittels sysvinit (z.B. Debian 7)

Auf sysvinit-basierenden Systemen realisieren wir den automatischen Start von motioneye wie folgt:

cp /usr/local/share/motioneye/extra/motioneye.init-debian /etc/init.d/motioneye
chmod +x /etc/init.d/motioneye
update-rc.d -f motioneye defaults

 

Erster Start

Alternativ zu einem Neustart können wir motioneye zunächst testweise mittels

/etc/init.d/motioneye start

bzw. unter systemd-basierten Systemen mit

systemctl start motioneye

starten und mit „ps“ prüfen, ob der motioneye-Prozess läuft:

motioneye4

 

Nun können wir das Webinterface auf dem vorher festgelegten Port in einem Browser öffnen:

http://ip_des_motioneye_servers:88

 

Beim ersten Start wird der Nutzer „admin“ ohne Passwort zum Anmelden verwendet, diese Anmeldedaten sollten natürlich als erstes geändert werden.

Jede Änderung an der Konfiguration muss mit dem Button „Apply“ bestätigt werden, dies kann jedoch auch nach einer Reihe von Änderungen erfolgen:

motioneye6

 

Webcam hinzufügen

motioneye5

 

Nun ist es an der Zeit, die erste(n) Webcam(s) hinzuzufügen. Dazu öffnen wir die Konfigurationsleiste mit dem folgenden Button:

motioneye2

 

Dort ändern wir, wenn noch nicht geschehen, unter den „General Settings“ das Passwort für die Nutzer „admin“ und „user„. In der Auswahlleiste neben dem gezeigten Button wählen wir den Menüpunkt „add camera„.

motioneye7

 

Im Fenster, das als Overlay erscheint, geben wir nun die Daten für unsere erste Webcam ein.

motioneye3

 

Im Fall einer motion-Instanz, wie sie in diesem Beitrag eingerichtet wurde, würde die Adresse wie folgt lauten:

http://ip_der_motion_instanz:8081/?action=stream

 

Nachdem die Kamera eingerichtet wurde, kann für diese individuell festgelegt werden, ob eine Bewegungserkennung aktiv ist oder nicht, ob ein Text über das Bild gesetzt werden soll und wo erstellte Videos und Fotos gespeichert werden sollen.

motioneye8

 

 

motioneye akutalisieren

Dank des Python-Installers ist das Aktualisieren von motioneye ein kurzer Prozess:

pip install --upgrade motioneye

 

Je nachdem, ob beim eigenen System systemd oder sysvinit eingesetzt wird, wird motioneye durch

/etc/init.d/motioneye restart

oder

systemctl restart motioneye

neu gestartet.