Ospitare un ricevitore SRTLA

LOLS IRL parla srtla standard compatibile con BELABOX, quindi il tuo ricevitore si comporta esattamente come i nostri relay. Ecco cosa far girare, quali porte contano e l'unico errore che impedisce a una connessione mobile di arrivare al tuo server.

Non devi ospitare niente: i relay gratuiti LOLS Cloud esistono perché il bonding funzioni subito, oppure puoi ospitare il tuo ricevitore e non dipendere da nessuno. C'è chi sceglie di ospitare per buoni motivi. Vuoi che lo stream arrivi su un'infrastruttura che controlli, vuoi una macchina fisicamente vicina a te dove noi non abbiamo un relay, vuoi non avere nessun limite a cui pensare, o semplicemente preferisci gestire le tue cose. Niente nell'app è legato ai nostri server, quindi cambiare vuol dire cambiare un hostname e basta.

Cosa stai costruendo

telefono (wifi + rete mobile)
   |
   |  srtla, UDP, un socket per rete
   v
srtla_rec          ascolta su una porta UDP pubblica, ricompone le connessioni
   |
   |  SRT semplice, UDP, su localhost
   v
server media       MediaMTX o equivalente
   |
   +--> OBS, o un restream verso Twitch / Kick / YouTube

Due pezzi, e ognuno ha un compito. srtla_rec, del progetto BELABOX, è la parte che capisce il bonding: ogni connessione che il telefono apre si registra lì come parte di un unico gruppo, e lui trasforma quel gruppo di nuovo in un normale stream SRT. Poi inoltra lo stream a un listener SRT, ed è lì che subentra un media server. MediaMTX è la scelta abituale e può passare lo stream a OBS, ripubblicarlo o registrarlo, ma va bene qualsiasi cosa accetti SRT.

Dove farlo girare

Il ricevitore deve essere raggiungibile da ogni rete su cui il telefono trasmette, il che in pratica vuol dire un indirizzo pubblico. Basta un piccolo VPS: è inoltro di pacchetti, non transcodifica, quindi contano molto più i megabit e una CPU modesta che i core. Mettilo geograficamente vicino a dove trasmetti, per lo stesso motivo per cui scegli il relay più vicino: la distanza è ritardo che non recuperi, e si paga di nuovo a ogni ritrasmissione.

L'errore che frega quasi tutti

Un ricevitore sulla LAN di casa, a un indirizzo tipo 192.168.1.50, è raggiungibile dal tuo Wi-Fi e da nient'altro. La connessione mobile non può instradare verso un indirizzo privato, quindi non si registra mai e non sei in bonding, trasmetti sul Wi-Fi con qualche passaggio in più, e le statistiche ti mostreranno una connessione invece di due.

Ospita su una macchina con un indirizzo pubblico, oppure inoltra la porta UDP sul router verso il server sulla tua LAN e punta l'app all'indirizzo pubblico del router. Un nome DNS dinamico ti evita di riscriverlo ogni volta che cambia l'indirizzo.

Porte

PortA cosa serve
UDP, la tua porta srtla, in ingresso da internetL'unica porta che il telefono tocca. 5000 è la convenzione. Ogni connessione in bonding arriva dal proprio indirizzo e dalla propria porta di origine, quindi non c'è niente da aprire o configurare per ogni connessione.
UDP, il tuo listener SRT, localeDove srtla_rec inoltra lo stream ricomposto. MediaMTX ascolta SRT sulla 8890 per impostazione predefinita. Non serve esporla a internet a meno che tu non voglia far pubblicare anche dei client SRT semplici.
Quello che serve il tuo media serverRTMP, RTSP, HLS o WebRTC in uscita verso OBS o verso uno spettatore, deciso interamente da te e fuori dal percorso del bonding.

UDP non è TCP

Firewall, gruppi di sicurezza del cloud e regole di inoltro del router molto spesso hanno TCP come predefinito. Una registrazione srtla mandata a una regola solo TCP sparisce senza errori da nessuna parte, e sembra identica a un ricevitore spento. Se una connessione non si registra, controlla il protocollo della regola prima di tutto il resto.

Stream id

srtla_rec passa lo stream id SRT così com'è, quindi quello che va nel campo Stream id dell'app è quello che si aspetta il server dietro. Con MediaMTX è la forma publish, un percorso e facoltativamente le credenziali quando l'autenticazione è attiva:

publish:mypath
publish:mypath:username:password

Attiva l'autenticazione se la porta è aperta a internet. Un endpoint di pubblicazione senza autenticazione su un indirizzo pubblico prima o poi lo trova qualcuno che non sei tu.

Puntare l'app qui

  1. In LOLS IRL: Streams → + → SRTLA.
  2. Host: il tuo hostname pubblico. Port: la porta UDP su cui ascolta srtla_rec.
  3. Stream id: la stringa publish che si aspetta il tuo media server.
  4. Latency: 2000 ms per cominciare. Quando sei in diretta l'app mostra il round trip che sta misurando e suggerisce un valore, che su un server vicino di solito sarà più basso del predefinito.
  5. Salva, attiva, vai in diretta ed espandi l'overlay delle statistiche. Una riga per connessione. Due righe vogliono dire che si sono registrate entrambe le reti.

Controllare che funzioni davvero

Note utili da sapere prima

Bloccato su un passaggio, o vuoi un secondo paio d'occhi su un ricevitore che non accetta la seconda connessione? Chiedi su Discord o scrivi a support@lols.gg. Portati la regione in cui sei, cosa mostra l'overlay delle statistiche e cosa ha registrato il ricevitore, e di solito si risolve in due messaggi.

Correlate: bonding in cinque minuti per il lato app e come leggere gli indicatori, usare i relay gratuiti se preferisci non ospitare, e tutte le guide.