“IRL”-Livestream erstellen – Automatischer Szenenwechsel bei Verbindungsverlust V.2

Du möchtest mit deiner Kamera raus gehen und von dort einen Livestream starten, möchtest aber deinen Zuschauern nicht dauerhaft deine Verbindungsprobleme mit einem „Offline“ zeigen?
Wie wäre es, wenn dein heimischer Rechner oder ein Server im Rechenzentrum für dich streamt, du dein Signal dort hin schickst und bei Verbindungsverlust eine Info-Szene eingeblendet wird?
Wäre doch super oder?

Mit dieser Anleitung, kannst du dir dein eigenen IRL-Stream-Server erstellen.
Wir bauen uns einen Server, welcher dein ankommendes Signal überwacht und ab einem gewissen Schwellwert automatisch auf eine andere Szene in OBS-Studio umschaltet.

Diese Anleitung erklärt die Einrichtung in einer virtuellen Maschine.
Damit kannst du das Setup problemlos bei dir Zuhause nachmachen!

Los gehts!







Was brauchen wir?
– Einen Linux-Server (Debian, Ubuntu, Mint empfohlen)
– Root-Rechte auf dem Server
– Optional für Heimrechner: Ein virtuellen Computer (VMware, Virtual Box)
– Optional aber Empfohlen: Eine Firewall und Portfreigaben
– Optional aber dringend Empfohlen für ein Heimsetup: Kein DS-Light Internetanschluss (Dual-Stack ist erforderlich!)
– Optional aber Empfohlen für ein Heimsetup: DNS-Dienste wie DynDNS, IPv64.net, …
– Eine gute Internetverbindung am Stream-PC
– Einen Kanal auf einer Streamingplattform wie Twitch, YouTube & Co.

Alles am Start?

1. Installiere dir die virtuelle Maschine oder buche dir ein Server.

Wie das geht, habe ich HIER in einem Video schon einmal ausführlich gezeigt.
Du kannst aber auch in einem Rechenzentrum einen Server mieten und diesem zum Streamen nutzen.
Dieser dient als Übermittlungsserver, um das Signal deiner Kamera an deine OBS-Instanz zuhause zu schicken.
Das Empfangen und weiterleiten benötigt keine hohen Anforderungen.
Tipp: Mit einem Server im Rechenzentrum, kannst du DS-Light-Probleme umgehen.
Der Server braucht folgende Spezifikationen:
– 1 CPU
– min. 512MB RAM
– 15GB Festplatte
– Netzwerkanbindung (LAN Empfohlen)

Als Betriebssystem sollte ein Linux zum Einsatz kommen.
Nur damit können wir die schlanken Anforderungen einhalten und vServer im Internet gibts für wenig Geld im Monat.
Wie du ein Linux-System in einer virtuellen Maschine installierst, werde ich hier nicht erklären, da es unterschiedliche Wege gibt.
Eine ausführliche Anleitung wie du eine virtuelle Maschine erstellen kannst, habe ich HIER erstellt.

Der Aufbau über einen Server im Rechenzentrum wäre folgender:

2. Installiere OpenSSH für den bequemen Zugriff über dein Hauptsystem (via SSH)

Falls du bei der Installation deiner virtuellen Maschine nicht angegeben hast, dass du OpenSSH installieren willst, musst du diesen Schritt tun.
Hast du ein Server im Rechenzentrum angemietet, ist zu 100% schon ein OpenSSH-Server vorinstalliert. Daher kannst du den Schritt in dem Fall überspringen.

Logge dich in deinem Linux-System ein und werde zum Root.
Debian: # su
Ubuntu / Mint: # sudo su

Installiere jetzt den OpenSSH-Server

# apt install openssh-server -y

Nun kannst du dich via IP-Adresse auf deinem Server mit z.B. Putty aufschalten.
Die IP-Adresse des Systems findest du mit folgendem Befehl heraus:

# ip address

Logge dich nun am besten via Putty auf deinem Server über SSH ein, da man damit recht leicht Dinge kopieren kann.
So musst du nicht alle Befehle abtippen.

3. Installiere notwendige Software

Wir müssen jetzt einiges installieren. Daher am besten den langen Befehl kopieren und einfach abschicken.
Die darin enthaltenen Pakete sind notwendig, damit alles am Ende starten kann.

# apt update && apt upgrade -y
# apt install nano htop iftop git build-essential libpcre3 libpcre3-dev libssl-dev tar unzip make git zlib1g zlib1g-dev libssl-dev -y

4. nginx + rtmp installieren

Die aktuellste Version von nginx findest du HIER und die des RTMP-Tools HIER.
Meine Befehle basieren auf der Version, die zur Zeit der Erstellung dieser Anleitung aktuell waren.

Lade dir nginx + rtmp herunter und entpacke die beiden Archive.

# wget https://nginx.org/download/nginx-1.25.1.tar.gz
# wget https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/archive/dev.zip
# tar -xf nginx-1.25.1.tar.gz
# unzip dev.zip

Wechsel in das nginx-Verzeichnis und lass nginx mit dem RTMP-Modul installieren.

# cd nginx-1.25.1
# ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-dev
# make
# make install

5. nginx OBS Automatic low bitrate switcher installieren

Öffne die GitHub-Seite des Projekts und lade dir das Archiv für Linux herunter.

# wget https://github.com/715209/nginx-obs-automatic-low-bitrate-switching/releases/download/v2.8.0/noalbs-v2.8.0-x86_64-unknown-linux-musl.tar.gz
# tar -xf noalbs-v2.8.0-x86_64-unknown-linux-musl.tar.gz
# cd noalbs-v2.8.0-x86_64-unknown-linux-musl

Tipp: Du kannst den Ordner gerne umbenennen, so siehst du aber immerhin auf den ersten Blick, welche ALBS-Version du verwendest.

# mv noalbs-v2.8.0-x86_64-unknown-linux-musl noalbs

Wunderbar. Nun ist es an der Zeit ALBS mit unseren Werten einzustellen.
Dazu editieren wir die Datei “config.json” mit einem Texteditor.

# cd noalbs
# nano config.json

Folgendes musst du anpassen:
user -> name: Gebe hier deinen Benutzernamen von Twitch an
switcher -> onlySwitchWhenStreaming Wechsel den Wert von true auf false, um alles offline testen zu können
switcher -> triggers -> low Setze hier einen Kilobit-Wert, der als Schwellwert gilt. Wird er unterschritten, bist du “offline”. Standard ist 800(kbit)
switcher -> triggers -> rtt Setze einen Wert, ab wann der Stream wieder als sicher online gilt in Kilobit. Standard ist 2500(kbit)
switchingScenes -> normal Gebe hier deinen Szenennamen in OBS an, wenn du LIVE bis. Also das Kamerabild.
switchingScenes -> low Gebe hier einen Szenennamen an, welcher bei schlechter Verbindung genutzt wird. Somit kannst du deine Zuschauer auf eventuelle Unterbrechungen vorbereiten.
switchingScenes -> offline Gebe hier einen Szenenenamen aus OBS an, wenn deine Internetverbindung weg ist.
streamServer -> enabled Ändere den Wert von true auf false
streamServer (type NodeMediaServer) -> enabled Ändere den Wert von true auf false
streamServer (type NMS) -> enabled Ändere den Wert von true auf false
streamServer (type SrtLiveServer – SLS) -> enabled Ändere den Wert von true auf false
streamServer (type SrtLiveServer – SLS2) -> enabled Ändere den Wert von true auf false
streamServer (nginx) -> overrideScene -> normal Gebe hier deinen Szenennamen in OBS an, wenn du LIVE bis. Also das Kamerabild.
streamServer (nginx) -> overrideScene -> low Gebe hier einen Szenennamen an, welcher bei schlechter Verbindung genutzt wird. Somit kannst du deine Zuschauer auf eventuelle Unterbrechungen vorbereiten.
streamServer (nginx) -> overrideScene -> offline Gebe hier einen Szenenenamen aus OBS an, wenn deine Internetverbindung weg ist.
software -> host Trage hier die IP-Adresse deines Rechners ein, auf dem OBS läuft
software -> password Gebe hier das WebRTC-Passwort von OBS ein
software -> port Falls du einen anderen Port als 4455 definiert hast, ändere diesen hier ab
chat -> username Trage hier deinen Twitch-Nutzernamen ein
chat -> admins Trage hier die Benutzernamen deiner Chat-Admins ein
language Wenn alles auf Deutsch laufen soll, trage hier ein de ein

Nach den Anpassungen, speichere alles ab, indem du STRG + X drückst, das ganze mit Y bestätigst und ENTER drückst.

Nun müssen wir noch Vorlagen für nginx herunterladen, welche von ALBS zur Verfügung stehen.
Lade dir daher diese zwei Dateien herunter und verschiebe diese in das korrekte Verzeichnis:

# wget https://raw.githubusercontent.com/715209/nginx-obs-automatic-low-bitrate-switching/v2/nginx/conf/nginx.conf
# wget https://raw.githubusercontent.com/715209/nginx-obs-automatic-low-bitrate-switching/v2/nginx/html/stat.xsl
# mv nginx.conf /usr/local/nginx/conf/
# mv stat.xsl /usr/local/nginx/html/

Die Daten werden benötigt, damit NoALBS die aktuellen Statistiken abrufen kann.

6. Alles starten

Nun starten wir nginx, damit wir dort hin streamen können.
Das funktioniert mit folgendem Befehl:

# /usr/local/nginx/sbin/nginx

ALBS können wir mit der mitgelieferten Startdatei direkt starten:

# ./launch.sh

Die Startdatei befindet sich im Ordner von noALBS.

7. Die Streamingsoftware für unterwegs einrichten

Richte deine Streaming-Software nun so ein, das du zu der virtuellen Maschine streamst.
Hierfür gibt es zwei Wege.
Weg Nr. 1: Über das heimische WLAN
Gebe hierzu einfach die lokale Adresse deiner Maschine an, z.B. rtmp://192.168.178.99:1935/publish/live

Weg Nr. 2: Über das Internet / an einen Server im Rechenzentrum
Gebe hierzu die IP-Adresse oder Domain deines Routers / deines Servers an, z.B. rtmp://123.123.123.123:1935/publish/live

Hier gibt es aber noch ein paar Dinge zu beachten!
live = Der Stream-Key. Kannst du kein Stream-Key angeben, nutze das Beispiel oben. Kannst du einen angeben, ist deine URL rtmp://123.123.123.123:1935/publish/ und dein Stream-Key ist live
– Steht deine virtuelle Maschine Zuhause, gebe unbedingt im Router den Port 1935 frei, damit du nach Hause streamen kannst!
– Steht dein Server in einem Rechenzentrum, achte darauf dass der Port 1935 in der Firewall freigeschaltet ist!
– Denke daran, das sich deine öffentliche IP-Adresse bei deinem Internetanschluss Zuhause alle 24 Stunden ändern kann!

8. OBS Studio anpassen

Das ist nun der leichte Part für dich, denn diesen solltest du bereits kennen.

OBS muss nun mit dem Plugin „WebSockets“ ausgestattet werden.
Das findest du HIER als Download.
Es ist mittlerweile in der OBS-Standardinstallation bereits enthalten.
>> Ich zeige hier nicht wie das geht, da es unterschiedliche Installationsmethoden für die verschiedenen Betriebssysteme gibt!

Ist es installiert, starte OBS Studio.
Klicke oben auf „Werkzeuge“ und dann auf „WebSockets-Servereinstellungen“.
→ Aktiviere den Server
→ Setze den Port auf 4455
→ Aktiviere die Authentifizierung
→ Gebe das sichere Kennwort aus der ALBS-Config ein
Drücke dann auf Okay.

Super!

Nun erstelle deine Szenen, die du in der ALBS-Config angegeben hast mit dem korrekten Namen.
Füge die gewünschten Quellen noch hinzu und schon kann es los gehen!

Als Quelle wähle VLC-Player aus und füge eine neue URL in die Playlist hinzu.
Die URL ist ebenfalls die, die du zu streamen benutzt.
Also rtmp://123.123.123.123:1935/publish/live

Auf einem Linux-System nutze die Medienquelle, oder installiere kurzerhand den VLC-Player damit diese Quelle zur Verfügung ist und füge dort ebenfalls die URL ein.

Tipp: Deaktiviere den WebSockets-Server, solange du deine Szenen einrichtest. Ansonsten wechselt ALBS dir die ganze zeit die Szene 😉

Passe eventuell auch noch deine Streamingeinstellugen an.
Also Auflösung, Datenrate, FPS und sonstige Einstellungen.

Nun kann es los gehen!
Starte den Stream in OBS, geh mit deiner Kamera raus und lege los! OBS und ALBS kümmern sich um den Rest!

9. Die Dienste automatisch starten lassen

Wir können die Dienste auch mit Hilfe von SystemD automatisch starten lassen.
So müssen wir nur die virtuelle Maschine starten … und vergessen 🙂
Der nginx-Webserver wird automatisch gestartet und die Verbindung wird dann automatisch zu OBS aufgebaut.
Der Autostart ist sehr schnell eingerichtet.

Lege eine neue SystemD-Konfiguration für nginx an:

# nano /etc/systemd/system/nginx-rtmp.service

Befülle die Datei mit folgendem Inhalt:

[Unit]
Description=nginx RTMP Server
After=network.target
 
[Service]
Type=forking
WorkingDirectory=/usr/local/nginx/sbin/
ExecStart=/usr/local/nginx/sbin/nginx
User=root
Group=root

Restart=on-failure
RestartSec=10
 
[Install]
WantedBy=default.target

Du musst hier nichts editieren.
Speichere die Datei an (STRG + X gefolgt von Y und ENTER).

Als nächstes lege die Datei für noALBS an.

# nano /etc/systemd/system/noalbs.service

Befülle sie mit folgendem Inhalt:

[Unit]
Description=nginx RTMP Server
After=network.target
 
[Service]
Type=simple
WorkingDirectory=/pfad/zu/noalbs/
ExecStart=/pfad/zu/noalbs/noalbs
User=root
Group=root

Restart=on-failure
RestartSec=10
 
[Install]
WantedBy=default.target

Ändere nun folgende Dinge auf deine Bedürfnisse ab:
WorkingDirectory= Editiere hier den Pfad zu deinem noalbs-Ordner. Beispiel: /root/noalbs/
ExecStart= Editiere hier den Pfad zu deinem noalbs-Ordner, indem sich die noalbs und launch.sh Datei befindet. Beispiel: /root/noalbs-version123456/noalbs
User= Setze hier ggf. einen anderen Nutzernamen ein, wenn du noalbs nicht mit dem Root-Nutzer starten willst
Group= Setze hier ggf. einen anderen Gruppennamen ein, wenn du noalbs nicht mit einem Benutzer der Root-Gruppe starten willst

Speichere die Datei an (STRG + X gefolgt von Y und ENTER).

Nun müssen wir die Dienste kurz aktivieren:

# systemctl enable nginx-rtmp.service
# systemctl enable noalbs.service

Nun ist es an der Zeit, den Server einmal komplett neu zu starten, damit alle Dienste über SystemD gestartet und gesteuert werden können.
Also schick mal ein reboot ab und warte kurz einen Moment.

Perfekt!
Jetzt kannst du deine Virtuelle Maschine einfach starten und vergessen.
Alles wird automatisch gemacht.


Noch ein paar Fragen zum Schluss.

Warum eine Linux-VM?
Weil es mit Linux viel einfacher umzusetzen ist, als mit Windows.
Zudem kannst du diese Anleitung 1:1 für Server im Rechenzentrum nachmachen. Linux-Server sind in RZ‘s meist viel günstiger als Windows-Server.
Die VM kannst du auch in einem Zug wieder restlos entfernen, wenn du sie nicht mehr brauchst.
Auch Updates für alle Komponennten lassen sich mit einem Zug installieren.

Kann ich das auch auf Windows umsetzen?
Ja. Installiere dir die Abhängigkeiten, also git, python, nginx mit rtmp & Co. auf Windows.

Kann ich alles inkl. OBS auf einen Server in einem Rechenzentrum installieren?
Ja das geht, dieser muss aber eine grafische Oberfläche installiert haben und sehr sehr sehr viel Power haben, da in der Regel keine Grafikkarte verbaut ist.
Unter 4 Kernen und 8GB RAM würde ich so etwas nicht anfangen.

Wie finde ich meine öffentliche IP heraus?
Das habe ich HIER in einem Video gezeigt. Du kannst sie auch einfach HIER abrufen.

Wie gebe ich Ports frei?
Das habe ich anhand einer FritzBox einmal HIER gezeigt. Ich kann es aber nicht für alle Router machen. Zum einen hab ich nicht „alle“ Router und zum anderen hab ich dazu keine Zeit 😉

Kann ich mit dem Smartphone streamen?
Ja, ich habe bisher gute Erfahrungen mit der App Larix Broadcaster für Android gemacht.
Leider nötigt der Entwickler nun die Anwender dazu, ein (meiner Meinung nach) überteuertes Premium-Abo abzuschließen.
Es gibt aber mittlerweile eine Alternative App mit dem Namen “IRL Pro” im Google Play Store.
Ist ein Fork von Larix Broadcaster mit ein paar Zusatzfunktionen.
Was komplett quelloffenes, was auch noch brauchbar ist, habe ich leider bisher nicht gefunden.

Ein Kommentar

  1. Pingback:“IRL”-Livestream mit SRT-Protokoll erstellen + Automatischer Szenenwechsel bei Verbindungsverlust - Hoerli.NET

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.