Hospedando um receptor SRTLA

O LOLS IRL fala srtla padrão compatível com BELABOX, então o seu próprio receptor se comporta exatamente como os nossos relays hospedados. Aqui está o que rodar, quais portas importam e o único erro que impede a conexão celular de chegar na sua máquina.

Você não precisa hospedar nada: os relays gratuitos do LOLS Cloud existem para o bonding funcionar de cara, ou você pode hospedar o seu próprio receptor e não depender de ninguém. Tem bons motivos para hospedar. Você quer que a transmissão caia numa infraestrutura que você controla, quer uma máquina fisicamente perto de você num lugar onde a gente não tem relay, quer não ter limite nenhum para pensar, ou simplesmente prefere rodar as próprias coisas. Nada no app está preso aos nossos servidores, então trocar é mudar um hostname e mais nada.

O que você está montando

celular (wifi + dados móveis)
   |
   |  srtla, UDP, um socket por rede
   v
srtla_rec          escuta em uma porta UDP pública, junta as conexões de novo
   |
   |  SRT comum, UDP, em localhost
   v
servidor de mídia  MediaMTX ou equivalente
   |
   +--> OBS, ou um restream para Twitch / Kick / YouTube

Duas peças, cada uma com um trabalho. O srtla_rec, do projeto BELABOX, é a parte que entende o bonding: toda conexão que o seu celular abre se registra nele como parte de um grupo, e ele transforma esse grupo de volta numa transmissão SRT comum. Depois repassa essa transmissão para um listener SRT, que é onde um servidor de mídia assume. O MediaMTX é a escolha de sempre e pode entregar a transmissão ao OBS, republicar ou gravar, mas qualquer coisa que aceite SRT serve.

Onde rodar

O receptor precisa estar alcançável por todas as redes pelas quais o seu celular transmite, o que na prática quer dizer um endereço público. Um VPS pequeno basta: isso é repasse de pacotes, não transcodificação, então megabits e uma CPU modesta importam muito mais que núcleos. Coloque perto de onde você transmite, pelo mesmo motivo de escolher o relay mais próximo: distância é atraso que você não recupera, e ele é pago de novo a cada retransmissão.

O erro que pega quase todo mundo

Um receptor na sua LAN de casa, em algo como 192.168.1.50, é alcançável pelo seu Wi-Fi e por mais nada. A sua conexão celular não consegue chegar a um endereço privado, então ela nunca se registra e você não está com bonding, está transmitindo pelo Wi-Fi com passos extras, e as estatísticas vão mostrar uma conexão em vez de duas.

Ou hospede numa máquina com endereço público, ou redirecione a porta UDP no roteador para a máquina da sua LAN e aponte o app para o endereço público do roteador. Um nome de DNS dinâmico te poupa de redigitar toda vez que o seu endereço muda.

Portas

PortaPara quê
UDP, a sua porta srtla, entrada vinda da internetA única porta que o celular toca. 5000 é a convenção. Cada conexão do bonding chega do seu próprio endereço e porta de origem, então não há nada por conexão para abrir ou configurar.
UDP, o seu listener SRT, localPara onde o srtla_rec repassa a transmissão remontada. O MediaMTX escuta SRT na 8890 por padrão. Ela não precisa ser exposta à internet, a menos que você também queira que clientes SRT simples publiquem nela.
O que o seu servidor de mídia servirRTMP, RTSP, HLS ou WebRTC para o OBS ou para um espectador, totalmente por sua conta e fora do caminho do bonding.

UDP não é TCP

Firewalls, grupos de segurança de nuvem e regras de redirecionamento de roteador muito frequentemente vêm com TCP por padrão. Um registro srtla enviado para uma regra só de TCP some sem erro em lugar nenhum, o que parece idêntico a o receptor estar fora do ar. Se uma conexão não se registra, confira o protocolo da regra antes de qualquer outra coisa.

Stream ids

O srtla_rec repassa o stream id do SRT direto, então o que vai no campo Stream id do app é o que o servidor por trás dele espera. Com o MediaMTX é a forma de publicação, um caminho e, opcionalmente, credenciais quando a autenticação está ligada:

publish:mypath
publish:mypath:username:password

Ligue a autenticação se a porta estiver aberta para a internet. Um endpoint de publicação sem autenticação num endereço público uma hora é achado por alguém que não é você.

Apontando o app para ele

  1. No LOLS IRL: Streams → + → SRTLA.
  2. Host: o seu hostname público. Port: a porta UDP em que o srtla_rec escuta.
  3. Stream id: a string de publicação que o seu servidor de mídia espera.
  4. Latency: 2000 ms para começar. Quando você estiver ao vivo, o app mostra o tempo de ida e volta que está medindo e sugere um valor, que numa máquina próxima costuma ficar abaixo do padrão.
  5. Salve, ative, entre ao vivo e expanda o overlay de estatísticas. Uma linha por conexão. Duas linhas quer dizer que as duas redes se registraram.

Conferindo se funciona de verdade

Bom saber de antemão

Travou num passo, ou quer um segundo par de olhos num receptor que não aceita a segunda conexão? Pergunte no Discord ou mande e-mail para support@lols.gg. Leve a região em que você está, o que o overlay de estatísticas mostra e o que o receptor logou, e costuma ser uma conversa de duas mensagens.

Relacionados: bonding em cinco minutos para o lado do app e como ler os indicadores, usando os relays gratuitos se preferir não hospedar, e todos os guias.