Software

Es gibt verschiedene Möglichkeiten mit einem Rasperry Pi einen Livestream zu erstellen. Wir verwenden hier das Paket MediaMTX.

Die Einrichtung läuft in drei Schritten ab:

  • Einrichtung des Raspberry Pi mit dem Betriebssystem

  • Installation & Konfiguration von MediaMTX

  • 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. Am einfachsten geht das mit dem "Raspberry Pi Imager" (Link)

  • Als Betriebssystem reicht Raspberry Pi OS Light

  • Vor dem beschreiben der SD Karte können WLAN Passwort und Login definiert werden.

  • 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 Passwort konnte bereits beim beschreiben der SD Karte definiert werden.

  • 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-get update
sudo apt full-upgrade
	
sudo reboot

Nach kurzer Zeit wieder einloggen (siehe oben SSH)

Kamera aktivieren

Je nach verwendeter Kamera muss diese im config file aktiviert werden:

sudo nano /boot/firmware/config.txt

Ganz unten hinzufügen:

dtoverlay=imx462

Speichern und neu booten:

sudo reboot

Nach dem erneuten einloggen braucht es noch einige Zusatzpakete:

sudo apt-get install libfreetype6 libcamera0
sudo apt install -y libcamera-apps

Nun kann getestet werden ob die Kamera korrekt installiert ist:

libcamera-still --list-cameras

Wenn alles korrekt funktioniert hat wird die Kamera nun angezeigt.

MediaMTX installieren

Der Raspberry Pi ist nun bereit, dass die Kamerasoftware installiert werden kann. Wir verwenden hier das Paket MediaMTX (Link).

wget https://github.com/bluenviron/mediamtx/releases/download/v1.11.1/mediamtx_v1.11.1_linux_arm64v8.tar.gz

Als Beispiel ist hier die Version 1.11.1 beschrieben. Die jeweils aktuellste Version ist unter https://github.com/bluenviron/mediamtx/releases zu finden.

Die eben heruntergeladene Datei entpacken:

tar xzvf mediamtx_v1.11.1_linux_arm64v8.tar_

Konfiguration

MediaMTX muss nun noch konfiguriert werden.

nano mediamtx.yml

Es gibt viele Optionen. MediaMTX kann unter anderem einen WebRTC, RTSP oder HLS Stream erzeugen. Die ganze Dokumentation ist auf der Github Seite zu finden (Link).

Um die Kamera des Raspberry Pi zu nutzen muss unter dem Schlüsselwort paths die Raspberry Kamera eingetragen werden. Weitere Parameter können hinzugefügt werden. Oder weiter oben in der Datei angepasst werden.

paths:
    cam:
		source: rpiCamera
		rpiCameraWidth: 1920
		rpiCameraHeight: 1080
		rpiCameraVFlip: true
		rpiCameraHFlip: true

Starten

Nach dem speichern können wir MediaMTX starten :

./mediamtx

Abrufen des Streams

Der Stream kann nun unter der Adresse rtsp://<raspberry-pi-ip>:8554/cam abgerufen werden (Wenn gewünscht kann der Port in der Konfigurationsdatei angepasst werden). 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 noch etwas mehr:

sudo mkdir /opt/mediamtx
sudo cp mediamtx /opt/mediamtx/
sudo cp mediamtx.yml /opt/mediamtx/

sudo nano /etc/systemd/system/mediamtx.service

Die Datei mediamtx.service öffnet sich. Nun muss folgendes in die Datei geschrieben werden:

[Unit]
Wants=network.target
	
[Service]
ExecStart=/opt/mediamtx/mediamtx /opt/mediamtx/mediamtx.yml
	
[Install]
WantedBy=multi-user.target

Nach dem Speichern muss der neue Service registriert und gestartet werden:

sudo systemctl daemon-reload
sudo systemctl enable --now mediamtx

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

Mit dem Befehl sudo systemctl status mediamtx kann der Status abgefragt werden.