„IRL“-Livestream erstellen – Automatischer Szenenwechsel bei Verbindungsverlust

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.
Er überwacht dein ankommendes Signal und schaltet ab einem gewissen Schwellwert automatisch auf eine andere Szene in OBS-Studio.

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 Empfohlen für ein Heimsetup: DNS-Dienste wie DynDNS
– 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 braucht keine großen Anforderungen, um deinen Stream zu empfangen und an deine OBS-Installation weiterzuleiten.
Die virtuelle Maschine braucht folgende Spezifikationen
– 1 CPU
– min. 512MB RAM
– 15GB Festplatte
– Netzwerkanbindung (LAN Empfohlen)

2. Installiere ein Betriebssystem

Hier liegt meine Empfehlung bei Debian (aktuell in der Version 10).
Es ist schlank und hat alles mit dabei, was wir gleich brauchen.
Ich habe hier eine Bildergalaire mit allen Seiten der Installation. Schau sie dir an und setze die Parameter passend für dich.
Was alles bei einer Debian-Installation zu beachten ist, habe ich jetzt hier absichtlich weg gelassen, da das ein ganz anderes Thema ist.

Eine ausführliche Anleitung wie du eine virtuelle Maschine erstellen kannst, habe ich HIER erstellt.

Diese Diashow benötigt JavaScript.

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

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.

4. Installiere notwendige Software

Wir müssen jetzt einiges installieren. Daher am besten den langen Befehl kopieren und einfach abschicken.

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

5. 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.19.1.tar.gz
# wget https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/archive/dev.zip
# tar -xf nginx-1.19.1.tar.gz
# unzip dev.zip

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

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

6. nginx OBS Automatic low bitrate switcher installieren

Nun kommt unser wichtigstes Tool. Der Szenenswitcher bei Verbindungsverluste!

Wechsel zuerst in ein Verzeichnis, wo du etwas Platz zum „spielen“ hast.
Am besten in /home/DEIN-NUTZERNAME
Lade dir das Tool herunter:

# git clone https://github.com/715209/nginx-obs-automatic-low-bitrate-switching.git
# cd nginx-obs-automatic-low-bitrate-switching

Nun installieren wir es:

# npm install --production

Okay, als nächstes statten wir nginx mit der passenden Konfiguration aus. Die bringt ABRS (automatic low bitrate switcher) direkt mit.

# cd /PFAD/ZUM/ORNDER/nginx-obs-automatic-low-bitrate-switching/nginx/conf/
# cp nginx.conf /usr/local/nginx/conf/nginx.conf

Nun legen wir noch die Statistik-Datei in unserem Webserververzeichnis ab.

# cp /home/NUTZERNAME/nginx-obs-automatic-low-bitrate-switching/nginx/html/stat.xsl /usr/local/nginx/html

Nun müssen wir nur noch die Config auf unsere Bedürfnisse anpassen.
Öffne sie nun mit einem Editor (z.B. nano) und ändere eine Zeile ab.

nano /usr/local/nginx/conf/nginx.conf

Ändere die Zeile des Home-Verzeichnisses ab.

root /usr/local/nginx/html/stat.xsl

Speichere die Datei mit STRG + X und Y mit ENTER ab.

Wunderbar. Nun ist es an der Zeit ALBS mit unseren Werten einzustellen.
Wechsel daher in das Hauptverzeichnis von ALBS und editiere die config.json Datei mit einem Editor.
Du musst folgende Werte auf deine Wünsche anpassen:

# nano /home/NUTZERNAME/nginx-obs-automatic-low-bitrate-switching/config.json

Damit OBS korrekt arbeitet, gibt es den Abschnitt „obs“. Diesen solltest du auf deine Gegebenheiten anpassen.

„ip“: => Trage hier deine IP-Adresse des Rechners ein, aufdem OBS Studio läuft (z.B. 192.168.178.15)
„password“: => Trage hier das Passwort des Websocket-Plugins aus OBS Studio ein. Hinterlege ein sicheres Kennwort!
„normalScene“: => Gebe hier den Namen der Szene an, die deine Kamera beinhaltet. Dies ist die „LIVE“-Szene.
„offlineScene“: => Gebe hier den Namen der Szene an, wenn du Offline bist und keine Internetverbindung hast.
„lowBitrateScene“: => Gebe hier den Namen der Szene an, die für die Zuschauer darauf hinweist, das deine Verbindung aktuell schlechter wird.
„refreshScene“: => Gebe hier den Namen der Szene an, wenn deine Internetverbindung wieder vorhanden ist und OBS Studio auf LIVE umschwenken kann. (Kann als Überblenung genutzt werden)
„lowBitrateTrigger“: => Gebe einen Wert in kbps an, der bei unterschreiten die Szene wechseln soll. 300 ist z.B. ganz gut.
„refreshSceneInterval“: => Gebe hier einen Wert in Millisekunden an, wie oft das Script die aktuelle Lage prüfen soll. Gut sind 5 Sekunden, also 5000.
„onlySwitchWhenStreaming“: => Für „Trockenübungen“ stell den Wert auf false, damit das Script auch arbeitet, wenn du nicht streamst.

Wenn du noch eine Twitch-Chat-Integration brauchst, kannst du bei „twitchChat“ noch ein paar Parameter anpassen.

„channel“: => Gebe hier den Kanalnamen deines Twitch-Kanals an.
„botUsername“: => Hast du einen Bot-Account, gebe hier den Nutzernamen an. Ansonsten nutze einfach deinen.
„oauth“: => Gebe hier einen OAuth-Token an. Diesen kannst du HIER generieren lassen.
„enable“: => Mit true ist der Chat-Modus aktiv, mit false kannst du die Twitch-Chat-Integration komplett abschalten.
„prefix“: => Ein Symbol, mit dem ein Chat-Befehl erkannt werden soll. Standardgemäß ein Ausrufezeichen (!befehl)
„adminUsers“: Gebe hier die Benutzernamen an, die als Admin hinterlegt sein sollen. Diese Personen können dem Bot Befehle zuschicken.
Der Rest ist freiwillig und eigentlich selbsterklärend.

Speichere alles ab. (STRG + X und Y gefolgt von ENTER)

Wir legen uns noch zur bequemen Bedienung eine Startdatei für ALBS an.
Lege diese im Verzeichnis von LBRS-Verzeichnis an.

# nano ALBS.sh

Befüllte die Datei nun mit folgendem Inhalt:

screen -S ALBS npm start

Speichere die Datei ab und mach sie ausführbar:

# chmod +x ALBS.sh

7. Nginx starten

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

# /usr/local/nginx/sbin/nginx

 

8. Low Bitrate Switcher starten

# ./ALBS.sh


Das Tool sollte nun laufen. Mit STRG + D gefolgt von einem A kannst du den Screen verlassen.

9. 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!

10. 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.
Installiere das Plugin in deinem OBS.
>> 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 4444
→ 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 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!


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 😉

Schreibe einen Kommentar

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

* Durch das Absenden dieses Kommentars werden deine angegebenen Daten auf dem Server gespeichert. Du stimmst dadurch den Datenschutzbedingungen zu.