HTTP Streaming Server

Video Streaming Server auf einem Raspberry Pi mit Restreamer 2.0

Im März 2021 hatte ich über Restreamer Version 1.0 einen Artikel veröffentlicht:
Video Streaming Server auf einem Raspberry Pi

Seit Mitte Mai 2022 ist die Version 2.0 veröffentlicht und es hat sich einiges verändert und viele Neuerungen sind hinzugekommen.

Das kommt auch vielen Benutzern von OBS und Streamlab OBS zugute und es gibt noch viele andere Möglichkeiten zur Nutzung von Restreamer 2.0, die schier endlos erscheinen.

Zum Einsatz kommt RTMP mit HLS auf dem integrierten Webserver. HTTP Live Streaming (HLS) ist eines der am häufigsten verwendeten Protokolle für Video-Streaming. Auch wenn es HTTP Live Streaming heißt, wird es sowohl für On-Demand-Streaming als auch für Live-Streaming eingesetzt. HLS zerlegt Videodateien in kleinere HTTP-Dateien und wird via HTTP-Protokoll übertragen. Endgeräte aller Art laden diese HTTP-Dateien herunter und geben diese direkt als Video wieder.

Anforderung

Welche Prozesse sind auf dem Streaming Server aktiv:

  • Codierung, dh. Videos werden in H.264-Codierung oder H.265-Codierung umformatiert. Viele Endgeräte ohne nötige Plugins können diese Dateien direkt ausgeben.
  • Segmentierung, dh. Video werden in Dateischnipsel auf den Server gespeichert. Die Länge kann variieren und beträgt im Standard 10 Sekunden. Eine Indexdatei z.B. stream.m3u8 wird hierfür permanent erzeugt die die Reihenfolge der Videodateien enthält.
  • HLS erstellt Duplikate für verschiedene Video Qualitätsstufen wie z.B. 480p, 720p, 1080p und weitere.Bitraten-adaptives Streaming wird dadurch möglich.
  • Die Endgeräte bestimmen die Videoqualität und nicht der Server. Dies ist vor allem bei wechselnden Datenraten im Mobilfunk sehr hilfreich, da das Video nicht abgebrochen wird, sondern je nach Netzanbindung die Qualität selbständig erhöht oder verringert.

Was wird benötigt

In diesem Fall keine SD-Karte benutzen, da massiv viele Daten auf den Speicher geschrieben und gelöscht werden. In kürzester Zeit wäre die SD-Karte kaputt. Für einen Testaufbau kann man natürlich eine SD-Karte nutzen. Für den Dauerbetrieb sollte es eine SSD-Drive sein. Die Einkaufsliste oben wurde von mir erprobt und alle Komponenten arbeiten mit einem Raspberry Pi 4 fehlerfrei.

Ein Architekturbild

Diese soll den allgemeinen Aufbau erklären:

Streaming mit Restreamer 2.0
Streaming mit Restreamer 2.0

Installation Software

Installation von Bullseye auf einem Raspberry Pi 3B+ mit der Version “Raspberry Pi OS Lite (32-Bit)”. Im Anschluss nach meiner Anleitung Docker installieren. Nun startet die Vorbereitung für den Aufbau des Docker Container.

docker run -d – restart=always – name restreamer -v /opt/restreamer/config:/core/config -v /opt/restreamer/data:/core/data – privileged -p 8080:8080 -p 8181:8181 -p 1935:1935 datarhei/restreamer:rpi-latest

Zum Überprüfen ob die angeschlossene Kamera, USB oder Raspi CAM unterstützt wird folgenden Befehl eingeben:

v4l2-ctl – list-devices

Ausgabe sollte wie folgt sein, für eine angeschlossene Raspi CAM mit dem /dev/video0 :

bcm2835-codec-decode (platform:bcm2835-codec):
 /dev/video10
 /dev/video11
 /dev/video12
 /dev/video18
 /dev/video31
 /dev/media2

bcm2835-isp (platform:bcm2835-isp):
 /dev/video13
 /dev/video14
 /dev/video15
 /dev/video16
 /dev/video20
 /dev/video21
 /dev/video22
 /dev/video23
 /dev/media0
 /dev/media1

mmal service 16.1 (platform:bcm2835-v4l2-0):
 /dev/video0

Zugriff auf die Installation des Docker Container:

Nun die URL aufrufen für den Zugriff auf den Raspberry Pi:

http://<Raspberry-Pi-IP>:/8080/ui

Es sollte folgendes Bild im Browser sichtbar sein:

 

Restreamer 2.0 Raspberry PI3 Login
Restreamer 2.0 Raspberry PI3 Login

Einrichtung und Aktivierung:

Damit die Kamera auch erkannt wird, muss der Legacy Camera Support auf dem Raspberry Pi aktiviert werden und dann neu gestartet werden, sonst funktionieren die weiteren Schritte nicht.

Aktivierung Legacy CAM Support
Aktivierung Legacy CAM Support
GPU-Speicher erhöhen
GPU-Speicher auf 256 MB erhöhen
Video-Kamera-Bild-180-Grad

Video Bild um 180 Grad gedreht

Auf dem Livestream Fenster gibt es einen Menüpunkt “HLS”. Dieser kann direkt als Link zwischengespeichert werden für den VLC-Player. Dort mit CMD-N und CMD-V einfügen und schon startet das Video im Player.

VLC-Player greift direkt auf die Kamera zu

Im Player Fenster kann die Player-URL direkt eingesehen und angeklickt werden. Darüber hinaus ist der iframe-Code verfügbar der dann auf eine Webseite eingebunden werden kann. Im Reiter Wiedergabe kann “Autoplay und Stumm” aktiviert oder deaktiviert werden.

Einbindung externe IP-Kamera, keine ONVIF Kameras, dazu die Kamera oben rechts anklicken. Es eröffnet sich unten ein Fenster mit dem Namen “Channel”. Dort können weitere Quellen hinzugefügt werden. Und hier ist es möglich ohne eine weitere Docker Instanz, mehrere Videoquellen wie IP-Kameras, IPTV, Fritzbox-TV einzubinden in einer einzigen Instanz. Wie das im Detail funktioniert erkläre ich noch.

Restreamer-neuen-Channel-erstellen
Restreamer-neuen-Channel-erstellen

Einbindung eines Fritzbox DVB-C Stream

Für den gewünschten Sender muss eine Datei *.m3u” heruntergeladen werden. Dazu an der Fritzbox anmelden und unter “DVB-C -> Senderliste -> Sender anklicken”.  Die Reihenfolge der Einrichtung

Der Inhalt der Datei sieht dann wie folgt aus:

#EXTM3U
#EXTINF:0,ZDF
#EXTVLCOPT:network-caching=1000
rtsp://192.168.1.1:554/?avm=1&freq=450&bw=8&msys=dvbc&mtype=256qam&sr=6900&specinv=1&pids=0,16,17,18,20,100,110,120,121,122,125,130,131,950

In diesem Fall wird nur der Teil ab “rtsp:// ….131,950” benötigt. Diese wird bei Netzwerk Quelle eingetragen und die Einrichtung erfogt wie oben in der Galerie angezeigt bei der Raspberry Pi Kamera.

Einrichtung Fritzbox

Wenn die Einrichtung erfolgreich war, kann nun über den Player der TV-Sender Live im Browser angezeigt werden. Es steht dem Live-Streaming ohne VPN, ohne IP-Geoblocking nichts mehr im Weg :-), ihr wisst schon was gemeint ist oder?!

Einrichtung IPTV mit Restreamer 2.0

Die Einrichtung einer Netzwerk Quelle ist wie schon oben bebildert in der Galerie die gleiche wie bei IPTV.
Habe mir die URL im Netz geholt für einen spanischen Musik IPTV Sender.

Einrichtung OBS mit Restreamer 2.0

Wie versprochen kommt jetzt noch die Anbindung von OBS an Restreamer. Zuerst wird der interne RTMP/S Server aktiviert. Dazu bitte oben rechts auf das Icon mit den drei Strichen klicken. Im Anschluß wird ein neuer Channel wie oben abgebildet eingerichtet.

Aktivierung RTMP-Server für OBS

Nun einen neuen Channel erstellen – oben rechts auf Kamera klicken

Einrichtung zusätzlichen Channel
Lokale Netzwerk Quelle für OBS zu RTMP-Server

Weiteres Setup für OBS

OBS starten und Einstellungen für Stream öffnen und dort die URL eintragen und die IP-Adresse Lokalhost mit der IP-Adresse des Raspberry Pi ergänzen.

STREAM URL eintragen des Channels und die IP des Raspberry Pi

Dann in OBS auf “Stream starten” klicken. Nun wird der ganze OBS Studio Inhalt zu den RTMP-Server von Restreamer geschickt. Es gibt noch so viele andere Möglichkeiten über die man hier schreiben könnte, wobei vieles wohl auch im Graubereich der Legalität liegen wird. Wer sich dazu austauschen möchte, kann in unseren Matrix-Raum https://matrix.to/#/#techtalk-de:socialnetwork24.com hinzukommen.

Halt STOP !!! Ich sehe schon die Kommentare hier unter dem Artikel “Warum sollte ich Restreamer nutzen mit OBS wenn ich doch direkt zu Twitch und Youtube streamen kann”. Ich sag nur halt die Füße still und lese den Artikel bis zum Ende, da kommt die Auflösung.

Am Ende erkläre ich noch wie die Streams an Twitch und Youtube grundsätzlich und gleichzeitig gestreamed werden können. Aber ACHTUNG: keine TV-Sender an Twitch oder Youtube streamen. Ihr habt sofort Urheberrechtsstreit am Hals mit Strafen und der Account wird gesperrt. Eigene IP-Kameras von 3D-Druckern im Betrieb, OBS Übertragungen etc. sind in der Regel kein Problem. 

Einrichtung Streaming zu Twitch und Youtube

Nun kommt der Schritt die Welt mit unserem Video-Content zu beglücken.

Benötigt wird ein Youtube und/oder Twitch Account. Dort müssen die Streamkeys abgeholt werden. Öffnen einen Channel Deiner Wahl und klicke auf “Publikationen” .

Hier sind ein paar Bildschirmaufnahmen von den drei verschiedenen Diensten wen diese erfolgreich verbunden sind und die Übertragung läuft. 

Update 3.08.2022

Die neue Version von Restreamer 2.2.0 hat nun auch die Möglichkeit “Chromecast” und “Airplay” zu nutzen. Dabei ist zu beachten, dass “Chromecast” nur über eine TLS/SSL-Verbindung funktioniert. Wenn der Player mit HTTP statt mit HTTPS aufgerufen wird, ist das Chromecast Symbol im Chromebrowser nicht vorhanden. Das ganze funktioniert auch nur mit dem Chrome Browser und einem Gerät welches Chromecasting unterstützt. Hinweis: Restream Player und Chromecast Player müssen im gleichen IP-Netzwerk sein.

AirPlay hab ich leider nicht zum laufen bekommen da ich kein Airplay Gerät besitze.

Wenn die Verbindung steht vom Player zum SmartTV, kann der Browser geschlossen werden und die Übertragung läuft weiter. Die Verbindung kann auch über ein Android Smartphone beobachtet und gestoppt werden. Es erscheint ein Screencast Player auf den Sperrbildschirm, wenn es im gleichen WLAN-Netzwerk angemeldet ist.

Schlußwort und Fazit:

Nun ist das Ende des Artikels erreicht, nur die Anwendungsbeispiele mit Restreamer 2.0 ist bei weitem nicht vollständig erschöpft. Eine interessante Möglichkeit ist die Anwendung in JITSI eine OpenSource Video Konferenz Software. Dort gibt es ebenfalls Möglichkeiten außerhalb von Youtube und Co. im Zusammenspiel mit Datenschutz Videos zu streamen für eine Teilnehmerzahl z.B. von 1.000 oder 10.000 Besuchern, während einer einzigen JITSI Konferenz. Da hier moderne Technik wie Docker / Podman eingesetzt wird, sind  Skalierungsmöglichkeiten in Kubernetes gegeben wie auch die Automatisierung mit Ansible. Lassen wir uns überraschen was Restreamer für Ausbaumöglichkeiten hat.

Habe mir ein Raspberry CAM Board für 4 Kameras bestellt. Die werde ich mit Restreamer testen für einen sogenannten 360 ° Grad Kamera Aufbau. In Youtube gibt es die Möglichkeit von mehreren separaten Videostreams zur gleichen Zeit. Es bleibt spannend und bleiben Sie dran. 

Wer sich dazu austauschen möchte, kann in unseren Matrix-Raum
https://matrix.to/#/#techtalk-de:socialnetwork24.com kommen.

Beste Grüße , Joachim Hummel

Alle Artikel auf dieser Seite sind mit einem sogenannte Provision-Links. Wenn du auf so einen Verweislink klickst und über diesen Link einkaufst, bekomme ich von deinem Einkauf eine Provision. Weiterführende Infos gibt es hier unter Punkt 8 in der Datenschutzerklärung  https://blog.unixweb.de/datenschutzerklaerung/

Joachim

Aus Leidenschaft für Technik. Aktuelle Themen sind Datensicherheit, Software für Datenschutz, Mobile Geräte, Smartphone Sicherheit und Anwendungen, Raspberry Pi Geek.

Alle Beiträge ansehen von Joachim →

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert