Een SRTLA-ontvanger zelf hosten

LOLS IRL spreekt standaard srtla, compatibel met BELABOX, dus je eigen ontvanger gedraagt zich precies als onze gehoste relays. Hier staat wat je draait, welke poorten ertoe doen en de ene fout waardoor een mobiele verbinding je server nooit bereikt.

Je hoeft niets te hosten: de gratis LOLS Cloud-relays bestaan zodat bonding meteen werkt, of je host zelf je eigen ontvanger en hangt van niemand af. Er zijn goede redenen om te hosten. Je wilt dat de stream op infrastructuur landt die jij beheert, je wilt een machine dicht bij je in de buurt waar wij geen relay hebben, je wilt geen tegoed om aan te denken, of je draait gewoon liever je eigen spullen. Niets in de app zit vast aan onze servers, dus overstappen is een hostnaam wijzigen en verder niets.

Wat je bouwt

telefoon (wifi + mobiel)
   |
   |  srtla, UDP, één socket per netwerk
   v
srtla_rec          luistert op een publieke UDP-poort, zet de verbindingen weer samen
   |
   |  gewone SRT, UDP, op localhost
   v
mediaserver        MediaMTX of vergelijkbaar
   |
   +--> OBS, of een restream naar Twitch / Kick / YouTube

Twee onderdelen, elk met één taak. srtla_rec, uit het BELABOX-project, is het deel dat bonding begrijpt: elke verbinding die je telefoon opent meldt zich ermee aan als onderdeel van één groep, en het maakt van die groep weer één gewone SRT-stream. Die stuurt het door naar een SRT-listener, waar een mediaserver het overneemt. MediaMTX is de gebruikelijke keuze en kan de stream aan OBS geven, opnieuw publiceren of opnemen, maar alles wat SRT accepteert voldoet.

Waar je hem draait

De ontvanger moet bereikbaar zijn vanaf elk netwerk waarover je telefoon streamt, en dat betekent in de praktijk een publiek adres. Een kleine VPS is ruim genoeg: dit is pakketten doorsturen, geen transcoderen, dus megabits en een bescheiden processor tellen veel meer dan cores. Zet hem geografisch dicht bij waar je streamt, om dezelfde reden als waarom je de dichtstbijzijnde relay kiest: afstand is vertraging die je niet terugkrijgt, en je betaalt hem opnieuw bij elke hersturing.

De fout die bijna iedereen maakt

Een ontvanger op je thuisnetwerk, op iets als 192.168.1.50, is bereikbaar via je Wi-Fi en nergens anders vandaan. Je mobiele verbinding kan niet naar een privéadres routeren, dus hij meldt zich nooit aan en je bent niet gebundeld, je streamt over Wi-Fi met extra stappen, en de statistieken laten je één verbinding zien in plaats van twee.

Host het dus op een machine met een publiek adres, of stuur de UDP-poort op je router door naar de server op je netwerk en richt de app op het publieke adres van je router. Een dynamische DNS-naam scheelt je opnieuw typen als je adres verandert.

Poorten

PortWaarvoor
UDP, je srtla-poort, inkomend vanaf het internetDe enige poort die de telefoon aanraakt. 5000 is de afspraak. Elke gebundelde verbinding komt aan vanaf een eigen bronadres en -poort, dus er valt niets per verbinding te openen of in te stellen.
UDP, je SRT-listener, lokaalWaar srtla_rec de weer samengevoegde stream heen stuurt. MediaMTX luistert standaard op 8890 naar SRT. Dit hoeft niet naar het internet open te staan, tenzij je ook gewone SRT-clients erheen wilt laten publiceren.
Wat je mediaserver ook aanbiedtRTMP, RTSP, HLS of WebRTC naar OBS of naar een kijker, helemaal aan jou en geen deel van het bondingpad.

UDP is geen TCP

Firewalls, cloudbeveiligingsgroepen en doorstuurregels op routers staan heel vaak standaard op TCP. Een srtla-aanmelding naar een regel die alleen TCP toelaat verdwijnt zonder foutmelding, wat er precies uitziet als een ontvanger die uit staat. Wil een verbinding zich niet aanmelden, controleer dan eerst het protocol op de regel voordat je iets anders nakijkt.

Stream-id's

srtla_rec geeft het SRT-stream-id ongewijzigd door, dus wat in het veld Stream id van de app komt is wat de server erachter verwacht. Bij MediaMTX is dat de publish-vorm, een pad en eventueel inloggegevens als authenticatie aan staat:

publish:mypath
publish:mypath:username:password

Zet authenticatie aan als de poort naar het internet openstaat. Een publish-eindpunt zonder authenticatie op een publiek adres wordt vroeg of laat gevonden door iemand die jij niet bent.

De app erop richten

  1. In LOLS IRL: Streams → + → SRTLA.
  2. Host: je publieke hostnaam. Port: de UDP-poort waarop srtla_rec luistert.
  3. Stream id: de publish-tekst die je mediaserver verwacht.
  4. Latency: begin met 2000 ms. Zodra je live bent toont de app de round trip die hij meet en stelt hij een getal voor, dat op een server dichtbij meestal lager is dan de standaard.
  5. Sla op, zet hem aan, ga live en klap de statistiekenoverlay uit. Eén rij per verbinding. Twee rijen betekent dat beide netwerken zich hebben aangemeld.

Controleren of het echt werkt

Goed om vooraf te weten

Zit je vast op een stap, of wil je dat iemand meekijkt naar een ontvanger die de tweede verbinding niet accepteert? Vraag het in de Discord of mail support@lols.gg. Neem de regio waar je zit, wat de statistiekenoverlay toont en wat de ontvanger logde mee, en meestal is het zo opgelost in twee berichten.

Gerelateerd: bonding in vijf minuten voor de kant van de app en hoe je de indicatoren leest, de gratis relays gebruiken als je liever niet host, en alle gidsen.