Găzduirea unui receiver SRTLA

LOLS IRL vorbește srtla standard compatibil BELABOX, deci propriul tău receiver se comportă exact ca relay-urile noastre găzduite. Iată ce rulezi, ce porturi contează și singura greșeală care împiedică o conexiune pe date mobile să-ți ajungă vreodată la mașină.

Nu trebuie să găzduiești nimic: relay-urile gratuite LOLS Cloud există ca bondingul să meargă din prima, sau îți găzduiești tu receiverul și nu depinzi de nimeni. Oamenii aleg să găzduiască din motive bune. Vrei ca stream-ul să ajungă pe o infrastructură pe care o controlezi, vrei o mașină aproape fizic de tine acolo unde noi nu avem un relay, vrei să nu te gândești la nicio limită sau pur și simplu preferi să-ți rulezi singur lucrurile. Nimic din aplicație nu e legat de serverele noastre, deci schimbarea înseamnă un hostname și atât.

Ce construiești

telefon (wifi + date mobile)
   |
   |  srtla, UDP, un socket pe rețea
   v
srtla_rec          ascultă pe un port UDP public, reasamblează conexiunile
   |
   |  SRT simplu, UDP, pe localhost
   v
server media       MediaMTX sau echivalent
   |
   +--> OBS, sau un restream mai departe spre Twitch / Kick / YouTube

Două piese, fiecare cu o singură treabă. srtla_rec, din proiectul BELABOX, e partea care înțelege bondingul: fiecare conexiune deschisă de telefon se înregistrează la el ca parte dintr-un singur grup, iar el transformă grupul la loc într-un stream SRT obișnuit. Apoi trimite acel stream către un listener SRT, unde preia un server media. MediaMTX e alegerea obișnuită și poate da stream-ul mai departe către OBS, îl poate republica sau înregistra, dar merge orice acceptă SRT.

Unde îl rulezi

Receiverul trebuie să poată fi ajuns din fiecare rețea pe care face stream telefonul, ceea ce în practică înseamnă o adresă publică. Un VPS mic e suficient: e retransmitere de pachete, nu transcodare, deci megabiții și un procesor modest contează mult mai mult decât nucleele. Pune-l geografic aproape de unde faci stream, din același motiv pentru care alegi cel mai apropiat relay: distanța e întârziere pe care nu o mai recuperezi și se plătește din nou la fiecare retransmisie.

Greșeala în care pică aproape toată lumea

Un receiver în rețeaua ta de acasă, la ceva de genul 192.168.1.50, se ajunge din Wi-Fi-ul tău și de nicăieri altundeva. Conexiunea pe date mobile nu poate ajunge la o adresă privată, deci nu se înregistrează și nu ai bonding, faci stream pe Wi-Fi cu pași în plus, iar statisticile îți arată o conexiune în loc de două.

Fie îl găzduiești pe o mașină cu adresă publică, fie redirecționezi portul UDP de pe router către mașina din rețeaua ta și îndrepți aplicația spre adresa publică a routerului. Un nume DNS dinamic te scutește să o retastezi de fiecare dată când se schimbă adresa.

Porturi

PortPentru ce
UDP, portul tău srtla, de intrare din internetSingurul port pe care îl atinge telefonul. 5000 e convenția. Fiecare conexiune cu bonding sosește de la propria adresă și propriul port sursă, deci nu e nimic de deschis sau configurat pe conexiune.
UDP, listenerul tău SRT, localUnde trimite srtla_rec stream-ul reasamblat. MediaMTX ascultă SRT pe 8890 în mod implicit. Nu trebuie expus în internet decât dacă vrei ca și clienți SRT simpli să publice în el.
Orice servește serverul tău mediaRTMP, RTSP, HLS sau WebRTC spre OBS sau spre un spectator, la alegerea ta, în afara căii de bonding.

UDP nu e TCP

Firewall-urile, grupurile de securitate din cloud și regulile de redirecționare de pe router au foarte des TCP ca implicit. O înregistrare srtla trimisă către o regulă doar TCP dispare fără nicio eroare, ceea ce arată identic cu un receiver căzut. Dacă o conexiune nu se înregistrează, verifică protocolul regulii înainte de orice altceva.

Stream id-uri

srtla_rec trece stream id-ul SRT mai departe neschimbat, deci ce pui în câmpul Stream id al aplicației e ce așteaptă serverul din spate. Cu MediaMTX asta e forma de publish, un path și opțional credențiale când autentificarea e pornită:

publish:mypath
publish:mypath:username:password

Pornește autentificarea dacă portul e deschis în internet. Un endpoint de publish fără autentificare pe o adresă publică va fi găsit până la urmă de cineva care nu ești tu.

Îndreptarea aplicației spre el

  1. În LOLS IRL: Streams → + → SRTLA.
  2. Host: hostname-ul tău public. Port: portul UDP pe care ascultă srtla_rec.
  3. Stream id: șirul de publish pe care îl așteaptă serverul tău media.
  4. Latency: 2000 ms la început. Odată ce ești live, aplicația arată round trip-ul pe care îl măsoară și sugerează o valoare, care pe o mașină apropiată va fi de obicei mai mică decât cea implicită.
  5. Salvează, activează, intră live și extinde overlay-ul de statistici. Un rând pe conexiune. Două rânduri înseamnă că s-au înregistrat ambele rețele.

Verifică dacă merge cu adevărat

Lucruri bune de știut dinainte

Te-ai blocat la un pas sau vrei o a doua pereche de ochi pe un receiver care nu acceptă a doua conexiune? Întreabă pe Discord sau scrie la support@lols.gg. Spune în ce regiune ești, ce arată overlay-ul de statistici și ce a logat receiverul, și de obicei se rezolvă în două mesaje.

Vezi și: bonding în cinci minute pentru partea de aplicație și cum citești indicatorii, folosirea relay-urilor gratuite dacă preferi să nu găzduiești și toate ghidurile.