Vlastní hosting přijímače SRTLA

LOLS IRL mluví standardním srtla kompatibilním s BELABOX, takže tvůj vlastní přijímač se chová úplně stejně jako naše hostované relaye. Tady je, co spustit, na kterých portech záleží a jedna chyba, kvůli které se mobilní připojení k tvé krabici nikdy nedostane.

Nemusíš hostovat nic: relaye LOLS Cloud zdarma existují proto, aby bonding fungoval hned po instalaci, nebo si můžeš hostovat vlastní přijímač a nezávisět na nikom. Lidé hostují z dobrých důvodů. Chceš, aby stream dopadl na infrastrukturu, kterou ovládáš, chceš stroj fyzicky blízko sebe tam, kde nemáme relay, nechceš řešit žádný limit, nebo prostě radši provozuješ vlastní věci. Nic v aplikaci není svázané s našimi servery, takže přepnutí je změna hostname a nic dalšího.

Co stavíš

telefon (wifi + mobilní data)
   |
   |  srtla, UDP, jeden socket na síť
   v
srtla_rec          poslouchá na veřejném UDP portu, skládá připojení
   |
   |  obyčejné SRT, UDP, na localhostu
   v
media server       MediaMTX nebo obdobný
   |
   +--> OBS, nebo restream dál na Twitch / Kick / YouTube

Dva díly a každý má jednu práci. srtla_rec z projektu BELABOX je ta část, která rozumí bondingu: každé připojení, které telefon otevře, se u ní zaregistruje jako součást jedné skupiny a ona tu skupinu přemění zpátky na jeden obyčejný stream SRT. Ten pak přepošle SRT listeneru, kde přebírá media server. Obvyklá volba je MediaMTX, který stream umí předat do OBS, znovu publikovat nebo nahrávat, ale poslouží cokoli, co přijímá SRT.

Kde to provozovat

Přijímač musí být dostupný ze všech sítí, přes které telefon streamuje, což v praxi znamená veřejnou adresu. Malý VPS stačí s přehledem: je to přeposílání paketů, ne překódování, takže na megabitech a skromném procesoru záleží mnohem víc než na jádrech. Dej ho geograficky blízko místa, odkud streamuješ, ze stejného důvodu, proč vybíráš nejbližší relay: vzdálenost je zpoždění, které nedostaneš zpátky, a platí se znovu při každém opakovaném odeslání.

Chyba, na kterou naletí skoro každý

Přijímač v domácí síti LAN, třeba na 192.168.1.50, je dostupný z tvé Wi-Fi a odnikud jinud. Mobilní připojení se na soukromou adresu nedostane, takže se nezaregistruje a bonding nemáš, streamuješ po Wi-Fi s přidanou námahou a statistiky ti ukážou jedno připojení místo dvou.

Buď hostuj na stroji s veřejnou adresou, nebo na routeru přesměruj UDP port na krabici v LAN a aplikaci namiř na veřejnou adresu routeru. Dynamické DNS ti ušetří přepisování pokaždé, když se adresa změní.

Porty

PortK čemu
UDP, tvůj port srtla, příchozí z internetuJediný port, kterého se telefon dotýká. 5000 je zvyk. Každé spojené připojení přichází z vlastní zdrojové adresy a portu, takže u jednotlivých připojení není co otevírat ani nastavovat.
UDP, tvůj SRT listener, lokálníKam srtla_rec přeposílá složený stream. MediaMTX ve výchozím stavu poslouchá SRT na 8890. Do internetu to vystavovat nemusíš, pokud nechceš, aby do něj mohli publikovat i obyčejní klienti SRT.
Cokoli, co tvůj media server nabízíRTMP, RTSP, HLS nebo WebRTC ven do OBS nebo k divákovi, zcela na tobě a mimo cestu bondingu.

UDP není TCP

Firewally, cloudové skupiny zabezpečení a pravidla přesměrování na routerech mají velmi často výchozí TCP. Registrace srtla poslaná na pravidlo jen pro TCP beze stopy zmizí, bez jakékoli chyby, což vypadá úplně stejně, jako když přijímač neběží. Když se připojení nechce zaregistrovat, zkontroluj protokol u pravidla dřív než cokoli jiného.

Stream id

srtla_rec předává stream id SRT beze změny, takže do pole Stream id v aplikaci patří to, co čeká server za ním. U MediaMTX je to publikační tvar, cesta a případně přihlašovací údaje, když je zapnuté ověřování:

publish:mypath
publish:mypath:username:password

Zapni ověřování, pokud je port otevřený do internetu. Neověřený publikační koncový bod na veřejné adrese dřív nebo později najde někdo, kdo nejsi ty.

Namíření aplikace

  1. V LOLS IRL: Streams → + → SRTLA.
  2. Host: tvůj veřejný hostname. Port: UDP port, na kterém poslouchá srtla_rec.
  3. Stream id: publikační řetězec, který čeká tvůj media server.
  4. Latency: na začátku 2000 ms. Jakmile jedeš živě, aplikace ukazuje odezvu, kterou měří, a navrhne hodnotu, která bude u blízké krabice obvykle nižší než výchozí.
  5. Ulož, zapni, spusť stream a rozbal overlay se statistikami. Jeden řádek na připojení. Dva řádky znamenají, že se zaregistrovaly obě sítě.

Ověření, že to opravdu funguje

Poznámky, které se hodí znát předem

Zasekl ses na kroku, nebo chceš druhý pár očí na přijímač, který nechce přijmout druhé připojení? Zeptej se na Discordu nebo napiš na support@lols.gg. Přines region, ve kterém jsi, co ukazuje overlay se statistikami a co zalogoval přijímač, a obvykle je to konverzace o dvou zprávách.

Související: bonding za pět minut pro stranu aplikace a čtení kontrolek, použití relayí zdarma, pokud nechceš hostovat, a všechny návody.