Überwachungskamera Livestream einrichten

Nachdem wir mit (USB) Kameras / Webcams bereits einzelne Bilder aufnehmen können, wollen wir auch Live Bilder ansehen. Dies kann entweder am Smartphone stattfinden oder an einem PC außerhalb des heimischen Netzwerks. Dazu konfigurieren wir mit der Raspberry Pi Überwachungskamera einen Livestream. Das Tolle daran ist, dass fast jede USB Kamera (also auch Webcams) benutzt werden können. Je nach Platzierung, kann z.B. eine Kamera ohne Infrarot Filter sinnvoll sein, um so bessere Nachtaufnahmen zu ermöglichen.

Falls wir eine USB Kamera anschließen wollen, muss unser Raspberry Pi natürlich einen freien USB Port besitzen. Allerdings können wir auch die offizielle Kamera nutzen, welche es in zwei Ausführungen gibt:

* Standardvariante (grün), welche u.a. 8MP hat und u.a. Videos in 1080p aufnehmen kann. Da ein Infrarot Filter eingebaut ist, eignet sie sich besonders für Tageslicht Aufnahmen bzw. für Orte mit genügend Lichteinstrahlung. * NoIR Variante (schwarz): Die Spezifikationen (Auflösung, etc.) sind identisch, allerdings ist kein IR Filter eingebaut, wodurch Aufnahmen mit wenig Licht besser erscheinen. Dies empfiehlt sich besonders bei dunklen Szenen.

Beide Kameras können direkt über den CSI Anschluss auf der Platine angeschlossen werden, wodurch kein USB Port belegt wird. Die neueren Zero Modelle (ab Generation 2) besitzen nun auch CSI Ports.

Alternativ kann auch eine beliebige USB Webcam benutzt werden, solange entsprechende Treiber für Linux vorhanden sind. Dies ist aber bei fast allen neueren Kameras der Fall. Sollte unser Raspberry Pi keinen integrierten WLAN Adapter haben, brauchen wir ggf. noch einen solchen, da eine Netzwerk- bzw. Internetverbindung unumgänglich ist.

Vorbereitungen für den Livestream treffen

Bevor wir den Stream unserer Raspberry Pi Kamera bzw. USB Webcam anlegen, müssen wir die Pakete aktualisieren:

 sudo apt update
 sudo apt upgrade

Anschließend kann das Tool motion installieren, welches den Livestream möglich macht.

 sudo apt install motion -y

Die Installation wird nun ein wenig dauern.

Hat soweit alles geklappt, so kann die Kamera angeschlossen werden (falls nicht bereits geschehen). Falls du eine USB Webcam nutzt, kannst du prüfen, ob sie erkannt wurde:

 lsusb

Sofern keine speziellen Treiber notwendig sind, sollten mit folgendem Befehl alle angeschlossenen Videogeräte / Kameras angezeigt werden:

 ls /dev/video*

Falls du eine der offizielen Kamera Module verwendest, ist es wichtig folgendes auszuführen, damit die Kamera gleich angezeigt wird (am besten per Autostart):

 sudo modprobe bcm2835-v4l2

Damit das Modul bereits beim Booten geladen wird ergänze die Datei /etc/modules:

 sudo nano /etc/modules

Am Ende der Datei einfügen

 bcm2835-v4l2

Danach natürlich speichern mit Strg+O und Beenden mit Strg+X.

Ist nur eine einzige Webcam / Raspberry Pi Kamera angeschlossen, sollte Device /dev/video0 angegeben sein. Falls du mehrere Geräte angeschlossen hast, musst du im folgenden das Gerät auswählen, welches den Stream übertragen soll.

Raspberry Pi Livestream konfigurieren

Für die weiteren Schritte, in denen wir einige Einstellungen festlegen, schauen wir uns die Kamera Details an:

 v4l2-ctl -V

Für meine USB Webcam habe ich folgende Ausgabe erhalten. Die Informationen zur Auflösung usw. werde ich gleich in der Konfigurationsdatei angeben.

 pi@raspberrypi:~ $ v4l2-ctl -V
 Format Video Capture:
      Width/Height  : 640/480
      Pixel Format  : 'YUYV'
      Field         : None
      Bytes per Line: 1280
      Size Image    : 614400
      Colorspace    : SRGB
      Flags         :

Bearbeiten wir also die Konfigurationsdatei von Motion:

 sudo nano /etc/motion/motion.conf

Folgende Zeilen müssen angepasst werden (die Variable kann mit STRG+W gesucht werden, die hinteren Werte wurden geändert):

 # Start in daemon (background) mode and release terminal (default: off)
 daemon on
 ...
 # Restrict stream connections to localhost only (default: on)
 stream_localhost off
 ...
 # Target base directory for pictures and films
 # Recommended to use absolute path. (Default: current working directory)
 target_dir /home/pi/Monitor

Folgene Zeilen sind optimal und sollten auch geändert werden (haben wir vorher ausgelesen):

 v4l2_palette 15     # Nummer aus der Tabelle davor entnehmen, 15 enstpricht YUYV
 ... 
 # Image width (pixels). Valid range: Camera dependent, default: 352 
 width 640 
 # Image height (pixels). Valid range: Camera dependent, default: 288 
 height 480 # Maximum number of frames to be captured per second. 
 # Valid range: 2-100. Default: 100 (almost no limit). 
 framerate 10 

Gespeichert wird mit STRG+O und geschlossen mit STRG+X. Weitere Optionen (Port, etc.) können auch noch im Nachhinein angepasst werden (erfordert einen Neustart). Die Kurzbeschreibung der Einstellungen ist dabei aber recht aufschlussreich.

Jetzt müssen wir nur noch den Daemon aktivieren, damit wir den Service gleich laufen lassen können:

 sudo nano /etc/default/motion

Hier ersetzen wir „no“ mit „yes“, womit folgender Text dort steht (ohne Kommentar):

 start_motion_daemon=yes

Nun müssen wir den Ordner, den wir vorher als Speicherort für die aufgenommen Frames angegeben haben, noch erstellen und die nötigen Schreibrechte erteilen:

 mkdir /home/pi/Monitor
 sudo chgrp motion /home/pi/Monitor
 chmod g+rwx /home/pi/Monitor

Anschließend können wir den Service bereits starten:

 sudo service motion start

Raspberry Pi Überwachungskamera Livestream testen

Um zu testen, ob unsere Kamera nun auch wirklich Livebilder sendet, haben wir prinzipiell zwei Möglichkeiten: Die eine Möglichkeit ist einfach den Browser (Mozilla Firefox, Chrome, etc.) zu verwenden und den Namen des Raspberry Pi’s, gefolgt vom Port (Standard: 8081) anzugeben. Wenn du den Hostnamen und Port nicht geändert hast, solltest du hierüber den Stream sehen können: http://raspberrypi:8081/ (alternativ kann die lokale IP Adresse verwendet werden, wie z.B. 192.168.1.51:8081).

Manche ältere Browser unterstützen diesen Stream allerdings nicht (Internet Explorer lässt grüßen 😀 ). Jene Nutzer können sich den Livestream z.B. über den VLC Player ansehen. Dazu einfach den VLC Player öffnen und im Menü unter „Medien“ → „Netzwerkstream öffnen“ (STRG + N) die oben angegebene Adresse angeben. Dies ist im Übrigen auch im VLC Player für Smartphones und Tablets (Android, Apple) möglich. Dazu im Menü auf „Medienadresse öffnen“ und die IP Adresse inkl. Port angeben.

Je nach angegebener Framerate (in der Konfigurationsdatei angegeben) ist das Bild flüssiger oder eben nicht. Natürlich muss die Kamera das auch entsprechend unterstützen. Falls die Kamera bspw. maximal 10 Frames pro Sekunde senden kann, bringt es natürlich nichts, falls mehr in der Konfiguration eingestellt wurden.

hier gefunden