Alojar um recetor SRTLA

A LOLS IRL fala srtla padrão compatível com BELABOX, por isso o teu recetor comporta-se exatamente como os nossos relays alojados. Aqui fica o que correr, que portas importam e o único erro que impede uma ligação de dados móveis de chegar à tua máquina.

Não tens de alojar nada: os relays gratuitos da LOLS Cloud existem para o bonding funcionar logo à partida, ou podes alojar o teu próprio recetor e não depender de ninguém. Há boas razões para alojar. Queres que a transmissão aterre em infraestrutura que controlas, queres uma máquina fisicamente perto de ti onde não temos relay, não queres ter um limite em que pensar, ou simplesmente preferes correr as tuas coisas. Nada na app está preso aos nossos servidores, por isso mudar é trocar um nome de host e mais nada.

O que estás a montar

telemóvel (wifi + dados móveis)
   |
   |  srtla, UDP, um socket por rede
   v
srtla_rec          escuta numa porta UDP pública, volta a juntar as ligações
   |
   |  SRT simples, UDP, em localhost
   v
servidor de media  MediaMTX ou equivalente
   |
   +--> OBS, ou uma retransmissão para Twitch / Kick / YouTube

Duas peças, cada uma com uma função. O srtla_rec, do projeto BELABOX, é a parte que percebe de bonding: cada ligação que o telemóvel abre regista-se nele como parte de um grupo, e ele transforma esse grupo de volta numa única transmissão SRT normal. Depois reencaminha-a para um listener SRT, que é onde um servidor de media assume. O MediaMTX é a escolha habitual e pode passar a transmissão ao OBS, voltar a publicá-la ou gravá-la, mas serve qualquer coisa que aceite SRT.

Onde o correr

O recetor tem de ser alcançável a partir de todas as redes por onde o telemóvel transmite, o que na prática quer dizer um endereço público. Um VPS pequeno chega e sobra: isto é reencaminhar pacotes, não transcodificar, por isso megabits e um CPU modesto contam muito mais do que núcleos. Põe-no geograficamente perto de onde transmites, pela mesma razão por que escolhes o relay mais próximo: a distância é atraso que não recuperas, e paga-se de novo em cada retransmissão.

O erro em que quase toda a gente cai

Um recetor na tua LAN de casa, em algo como 192.168.1.50, é alcançável pelo teu Wi-Fi e de mais nada. A ligação dos dados móveis não consegue chegar a um endereço privado, por isso nunca se regista e não estás com bonding, estás a transmitir pelo Wi-Fi com passos a mais, e as estatísticas vão mostrar-te uma ligação em vez de duas.

Ou aloja numa máquina com endereço público, ou redireciona a porta UDP no router para a máquina na tua LAN e aponta a app para o endereço público do router. Um nome de DNS dinâmico poupa-te escrevê-lo de novo sempre que o endereço muda.

Portas

PortaPara quê
UDP, a tua porta srtla, a entrar da internetA única porta que o telemóvel toca. 5000 é a convenção. Cada ligação do bonding chega do seu próprio endereço e porta de origem, por isso não há nada por ligação para abrir ou configurar.
UDP, o teu listener SRT, localPara onde o srtla_rec reencaminha a transmissão montada. O MediaMTX escuta SRT na 8890 por defeito. A porta não precisa de estar exposta à internet, a menos que também queiras que clientes SRT simples publiquem nela.
O que o teu servidor de media servirRTMP, RTSP, HLS ou WebRTC para o OBS ou para um espectador, inteiramente à tua escolha e fora do caminho do bonding.

UDP não é TCP

As firewalls, os grupos de segurança na cloud e as regras de redirecionamento do router têm muitas vezes TCP por defeito. Um registo srtla enviado para uma regra só TCP desaparece sem erro em lado nenhum, o que parece igual a o recetor estar em baixo. Se uma ligação não se registar, confirma o protocolo da regra antes de verificares o resto.

Stream ids

O srtla_rec passa o stream id SRT tal e qual, por isso o que vai no campo Stream id da app é o que o servidor por trás espera. Com o MediaMTX é a forma de publicar, um caminho e opcionalmente credenciais quando a autenticação está ligada:

publish:mypath
publish:mypath:username:password

Liga a autenticação se a porta estiver aberta à internet. Um endpoint de publicação sem autenticação num endereço público acaba por ser encontrado por alguém que não és tu.

Apontar a app para ele

  1. Na LOLS IRL: Streams → + → SRTLA.
  2. Host: o teu nome de host público. Port: a porta UDP em que o srtla_rec escuta.
  3. Stream id: a string de publicação que o teu servidor de media espera.
  4. Latency: 2000 ms para começar. Quando estiveres em direto, a app mostra o tempo de ida e volta que está a medir e sugere um valor, que numa máquina próxima costuma ser mais baixo do que o predefinido.
  5. Guarda, ativa, entra em direto e expande o overlay de estatísticas. Uma linha por ligação. Duas linhas quer dizer que as duas redes se registaram.

Confirmar que funciona mesmo

Notas que convém ter de antemão

Encravado num passo, ou queres uma segunda opinião sobre um recetor que não aceita a segunda ligação? Pergunta no Discord ou escreve para support@lols.gg. Traz a região em que estás, o que o overlay de estatísticas mostra e o que o recetor registou, e costuma ser uma conversa de duas mensagens.

Relacionado: bonding em cinco minutos para o lado da app e como ler os indicadores, usar os relays gratuitos se preferires não alojar, e todos os guias.