Software

Es gibt verschiedene Möglichkeiten mit einem Rasperry Pi einen Livestream zu erstellen. Häufig wird z.B. das Programm motionEyeOS empfohlen. Ich hatte aber damit keine guten Resultate. Nach einigem pröbeln habe ich mich entschieden mit dem Programm v4l2rtspserver zu arbeiten. Es bietet einen sehr latenzarmen Stream auch in FullHD und mit 30 Bildern pro Sekunde. Und ist mit wenigen Befehlen eingerichtet.

Die Einrichtung läuft in drei Schritten ab:

  • Einrichtung des Raspberry Pi mit dem Betriebssystem

  • Installation & Konfiguration des v4l2rtspservers

  • Starten

Grundeinrichtung Raspberry Pi Zero W

Die Grundeinrichtung wird nach der Anleitung auf (www.raspberrypi.org) ausgeführt:

  • Mit Raspberry Pi Imager SD Karte mit dem Betriebssystem schreiben

  • Als Betriebssystem reicht Raspberry Pi OS Light

  • Nach dem Schreiben die Datei wpa_supplicant.conf erstellen und auf die SD Karte ins Root Verzeichnis kopieren.

  • Inhalt der Datei:

ctrlinterface=DIR=/var/run/wpasupplicant 
GROUP=netdevupdate_config=1
country=<Insert 2 letter ISO 3166-1 country code here>
network={ 
  ssid="<Name of your wireless LAN>" 
  psk="<Password for your wireless LAN>"
}
  • eine leere Datei ssh erstellen und ebenfalls ins Root Verzeichnis der SD Karte kopieren

  • SD Karte in Raspberry Pi stecken

  • Raspberry PI mit Strom versorgen. Der Raspberry Pi startet

  • Nun sollte der Raspberry PI mit dem Netzwerk verbinden

Vorbereiten des Raspberry Pi

Login auf dem Raspberry PI

Mit dem Terminal kann nun über SSH mit dem Raspberry Pi eine Verbindung aufgebaut werden.

  • Zuerst muss die IP Adresse des Raspberry Pi's herausgefunden werden. Normalerweise kann die Adresse im Internetrouter nachgeschaut werden. Im Beispiel verwende ich die Adresse 192.168.1.10

  • Ein Terminal öffnen und den Befehl ssh pi@192.168.1.10 einloggen.

  • Das Standardpasswort lautet raspberry

  • Beim ersten Login muss unter Umständen bestätigt werden, dass eine Verbindung hergestellt werden soll. (Mit yes bestätigen.)

Update & Upgrade

  • Nach dem Login sollte der Pi auf den neusten Stand gebracht werden (Link).

  • sudo apt update

  • sudo apt full-upgrade Das kann nun einen Moment dauern

  • Nach dem Upgrade den Pi neu starten: sudo reboot

  • Nach kurzer Zeit wieder einloggen (siehe oben SSH)

  • Nun muss die Konfiguration des Raspberry Pi geändert werden: sudo raspi-config

  • Es öffnet sich ein Menu in dem Folgendes geändert werden sollte:

    • Passwort ändern

    • Interfacing Option (Pi Kamera aktivieren)

    • Advanced (Memory Split auf 256MB stellen)

    • Reboot

  • Nach einer kurzen Zeit wieder einloggen (siehe oben SSH)

Kamerasoftware installieren

Der Raspberry Pi ist nun bereit, dass die Kamerasoftware installiert werden kann.

  • Als nächstes muss Git installiert werden, da der v4l2rtspserver auf einem Git Repository zur Verfügung steht.

  • sudo apt install git

  • Danach kann die Software heruntergeladen, kompilliert und installiert werden:

sudo apt-get install cmake liblog4cpp5-dev libv4l-dev
git clone https://github.com/mpromonet/v4l2rtspserver.git
cd v4l2rtspserver/
cmake .
make
sudo make install
  • Dies kann nun einige Zeit dauern.

Starten

Sobald die obigen Befehle durchglaufen sind, kann der Stream gestartet werden:

v4l2rtspserver -H 1080 -W 1920 -F 30 -P 8555 /dev/video0

Dieser Befehl startet einen Stream mit einer Auflösung von 1920x1080 Pixel (FullHD) mit 30 Bildern pro Sekunde auf dem Port 8555.

Abrufen des Streams

Der Stream kann nun unter der Adresse rtsp://<raspberry-pi-ip>:8555/unicas abgerufen werden (in unserem Beispiel wäre das also rtsp://192.168.1.10:8555/unicast). Zum Abrufen eignet sich z.B. das Programm VLC (Link).

Den Stream automatisch Starten

Mit dem obigen Befehl haben wir zwar den Stream gestartet aber beim nächsten Neustart des Raspberry Pi wird er nicht automatisch neu gestartet. Dafür braucht es folgenden Eintrag:

sudo nano /lib/systemd/system/v4l2rtspserver.service

Die Datei v4l2rtspserver.service öffnet sich. Nun muss die Zeile ExecStart ergänzt werden.

[Unit]
Description=V4L2 RTSP server
After=network.target

[Service]
Type=simple
Restart=always
RestartSec=1
User=pi
ExecStart=/usr/local/bin/v4l2rtspserver -F 30 -H 1080 -W 1920 -P 8554 /dev/video0
WorkingDirectory=/usr/local/share/v4l2rtspserver
StartLimitIntervalSec=0

[Install]
WantedBy=multi-user.target

Zum Schluss muss nun noch folgender Befehl ausgeführt werden:

sudo systemctl enable v4l2rtspserver

Nach einem Neustart des Raspberry Pi startet auch der Stream automatisch.

Weitere kleine Verbesserungen

Da ich beim Kamera Modul den Infrarotfilter entfernt habe (der Nistkasten wird mit Infrarotleds ausgeleuchtet), ist das Bild nun "Rot" aus diesem Grund wird das Bild noch in ein Schwarz-Weiss Bild gewandelt:

sudo nano /etc/rc.local

In der Datei die folgende Zeile einfügen:

v4l2-ctl --set-ctrl=color_effects=1