Einen SRTLA-Receiver selbst hosten

LOLS IRL spricht Standard-srtla, BELABOX-kompatibel, dein eigener Receiver verhält sich also genau wie unsere gehosteten Relays. Hier steht, was du laufen lässt, welche Ports wichtig sind und der eine Fehler, der verhindert, dass eine Mobilfunk-Verbindung je deine Kiste erreicht.

Du musst nichts hosten: Die kostenlosen LOLS Cloud Relays gibt es, damit Bonding direkt funktioniert, oder du hostest deinen eigenen Receiver und hängst von niemandem ab. Es gibt gute Gründe, selbst zu hosten. Du willst, dass der Stream auf Infrastruktur landet, die du kontrollierst, du willst eine Maschine physisch in deiner Nähe, wo wir kein Relay haben, du willst kein Kontingent im Kopf haben, oder du betreibst einfach lieber deine eigenen Sachen. Nichts in der App ist an unsere Server gebunden, der Wechsel ist also eine Änderung des Hostnamens und sonst nichts.

Was du baust

Handy (wifi + Mobilfunk)
   |
   |  srtla, UDP, ein Socket pro Netzwerk
   v
srtla_rec          lauscht auf einem öffentlichen UDP-Port, setzt die Verbindungen wieder zusammen
   |
   |  normales SRT, UDP, auf localhost
   v
Media-Server       MediaMTX oder Gleichwertiges
   |
   +--> OBS oder ein Restream weiter zu Twitch / Kick / YouTube

Zwei Teile, jedes mit einer Aufgabe. srtla_rec aus dem BELABOX-Projekt ist der Teil, der Bonding versteht: Jede Verbindung, die dein Handy öffnet, registriert sich dort als Teil einer Gruppe, und er macht aus dieser Gruppe wieder einen einzigen normalen SRT-Stream. Den leitet er an einen SRT-Listener weiter, und dort übernimmt ein Media-Server. MediaMTX ist die übliche Wahl und kann den Stream an OBS geben, neu veröffentlichen oder aufzeichnen, aber alles, was SRT annimmt, geht.

Wo du es laufen lässt

Der Receiver muss aus jedem Netz erreichbar sein, über das dein Handy streamt, und das heißt in der Praxis eine öffentliche Adresse. Ein kleiner VPS reicht völlig: Das ist Paketweiterleitung, kein Transcoding, also zählen Megabit und eine bescheidene CPU weit mehr als Kerne. Stell ihn geografisch in die Nähe dorthin, wo du streamst, aus demselben Grund, aus dem du das nächste Relay wählst: Entfernung ist Verzögerung, die du nicht zurückbekommst, und du zahlst sie bei jeder erneuten Übertragung noch einmal.

Der Fehler, über den fast alle stolpern

Ein Receiver in deinem Heimnetz, etwa unter 192.168.1.50, ist von deinem Wi-Fi aus erreichbar und von nirgends sonst. Deine Mobilfunk-Verbindung kann keine private Adresse erreichen, also registriert sie sich nie, und du bist nicht gebündelt, sondern streamst über Wi-Fi mit Umweg, und die Statistik zeigt dir eine Verbindung statt zwei.

Hoste entweder auf einer Maschine mit öffentlicher Adresse oder leite den UDP-Port an deinem Router auf die Kiste in deinem Heimnetz weiter und richte die App auf die öffentliche Adresse deines Routers. Ein Dynamic-DNS-Name erspart dir, sie jedes Mal neu einzutippen, wenn sich deine Adresse ändert.

Ports

PortWofür
UDP, dein srtla-Port, eingehend aus dem InternetDer einzige Port, den das Handy anspricht. 5000 ist die Konvention. Jede gebündelte Verbindung kommt von ihrer eigenen Quelladresse und ihrem eigenen Port, du musst also pro Verbindung nichts öffnen oder einstellen.
UDP, dein SRT-Listener, lokalWohin srtla_rec den wieder zusammengesetzten Stream weiterleitet. MediaMTX lauscht standardmäßig auf 8890 auf SRT. Das muss nicht ins Internet freigegeben werden, es sei denn, du willst, dass auch normale SRT-Clients dorthin veröffentlichen.
Was immer dein Media-Server ausliefertRTMP, RTSP, HLS oder WebRTC raus zu OBS oder zu einem Zuschauer, ganz dir überlassen und nicht Teil des Bonding-Wegs.

UDP ist nicht TCP

Firewalls, Cloud-Sicherheitsgruppen und Router-Weiterleitungsregeln stehen sehr oft standardmäßig auf TCP. Eine srtla-Registrierung, die auf eine reine TCP-Regel trifft, verschwindet ohne jeden Fehler, und das sieht genauso aus, als wäre der Receiver down. Wenn sich eine Verbindung nicht registriert, prüf zuerst das Protokoll der Regel, bevor du irgendetwas anderes prüfst.

Stream-IDs

srtla_rec reicht die SRT-Stream-ID unverändert durch, in das Feld Stream id der App gehört also, was der Server dahinter erwartet. Bei MediaMTX ist das die Publish-Form, ein Pfad und, wenn die Authentifizierung an ist, optional Zugangsdaten:

publish:mypath
publish:mypath:username:password

Schalte die Authentifizierung ein, wenn der Port zum Internet offen ist. Einen Publish-Endpunkt ohne Authentifizierung auf einer öffentlichen Adresse findet irgendwann jemand, der du nicht bist.

Die App darauf richten

  1. In LOLS IRL: Streams → + → SRTLA.
  2. Host: dein öffentlicher Hostname. Port: der UDP-Port, auf dem srtla_rec lauscht.
  3. Stream id: der Publish-String, den dein Media-Server erwartet.
  4. Latency: zum Start 2000 ms. Sobald du live bist, zeigt die App die Round-Trip-Zeit, die sie misst, und schlägt einen Wert vor, der bei einer nahen Kiste meist niedriger sein wird als der Standard.
  5. Speichern, einschalten, live gehen und die Statistik-Anzeige aufklappen. Eine Zeile pro Verbindung. Zwei Zeilen heißen, beide Netze haben sich registriert.

Prüfen, ob es wirklich funktioniert

Gut vorab zu wissen

Hängst du an einem Schritt, oder willst du ein zweites Paar Augen auf einen Receiver, der die zweite Verbindung nicht annimmt? Frag im Discord oder schreib an support@lols.gg. Bring die Region mit, in der du bist, was die Statistik-Anzeige zeigt und was der Receiver geloggt hat, und meist sind es zwei Nachrichten.

Dazu passt: Bonding in fünf Minuten für die App-Seite und wie du die Anzeigen liest, Die kostenlosen Relays nutzen, wenn du lieber nicht hostest, und alle Guides.