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 kopierenSD 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 dauernNach 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