Bonding: Wi-Fi e dados móveis numa só transmissão em cinco minutos

Configura o bonding srtla na LOLS IRL, lê os indicadores de cada ligação enquanto transmites e fica a saber o que esperar da primeira vez que uma rede te falha.

O bonding envia a tua transmissão por todas as redes que o telemóvel tem em simultâneo. É a diferença entre uma transmissão que acaba quando o Wi-Fi cai e uma que continua pelos dados móveis sem tocares em nada. Configuras uma vez e passa a ser a forma normal de entrares em direto.

O que precisas primeiro

Como configurar

  1. Reúne os dados do teu recetor. Num relay gratuito, é uma chave de relay-auth.lols.gg, que já vem no formato de stream id. Na tua própria máquina, é o nome do host, a porta UDP e o stream id que o teu servidor espera.
  2. Abre Streams e adiciona um destino. Na app, vai a Streams, toca em + e escolhe SRTLA entre as três opções de protocolo. O SRT é uma ligação ao teu próprio recetor, o RTMP vai direto a uma plataforma, o SRTLA é o que faz bonding.
  3. Preenche o host e a porta. Com um relay, toca na tua região e o host, a porta e o nome preenchem-se sozinhos. A região mais próxima do país do teu SIM tem uma estrela. Com o teu próprio recetor, escreve o nome de host público e a porta UDP em que ele escuta.
  4. Cola a chave em Stream id. Este é o campo que as pessoas falham. Uma chave de relay já traz o prefixo publish:, por isso cola-a inteira em Stream id, não no nome nem no fim do host.
  5. Deixa a latência em 2000 ms para começar. É o valor predefinido e é sensato. Mais alto aguenta um sinal pior, mais baixo corta atraso mas deixa menos margem para reenviar um pacote perdido. Quando estiveres em direto, a app mostra o tempo de ida e volta que está a medir e sugere um valor que lhe corresponda, por isso afina depois com números reais em vez de adivinhares agora.
  6. Guarda e confirma que o destino está ligado. Um destino guardado mas não ativado é a maneira mais discreta de não estar a transmitir.
  7. Entra em direto e depois expande as estatísticas. Toca no overlay de estatísticas no ecrã em direto para o expandir. Queres ver uma linha por ligação: wifi e cell, cada uma com o seu bitrate e tempo de ida e volta. Duas linhas quer dizer que estás com bonding. Uma linha quer dizer que não, e os erros abaixo explicam porquê.

Ler os indicadores

Recolhido, o overlay mostra uma bolinha de estado, o teu bitrate, a taxa de fotogramas do codificador, o tempo de ida e volta e há quanto tempo estás em direto. Ao tocar, abre o detalhe:

LeituraO que te diz
send bufferO indicador que avisa primeiro, e o que deves vigiar. O buffer enche antes de a imagem engasgar, por isso um valor a subir é o aviso de que uma ligação está aflita, não o relatório de que já falhou.
targetO bitrate que o bitrate adaptativo está a tentar atingir, que desce e sobe sozinho conforme as condições mudam.
dropped e retransmitPacotes perdidos e pacotes reenviados. Alguns retransmits nos dados móveis são normais, uma contagem de perdidos a subir não é.
Uma linha por ligaçãoCom a etiqueta wifi, cell ou eth, cada uma com o seu bitrate e tempo de ida e volta, para veres que rede leva o quê.
A bolinha em cada linha de ligaçãoVerde é ativa e a levar tráfego, âmbar é a ligar ou encravada, vermelho é morta. Uma linha vermelha com a transmissão de pé é o bonding a fazer o seu trabalho.
Uma linha por destinoCom nome, para que, se enviares para vários sítios, vejas qual está em baixo enquanto os outros estão bem.

O que acontece quando uma ligação cai

Nada de dramático, que é a ideia. A linha da ligação que falhou fica vermelha, as restantes assumem o tráfego e a transmissão mantém-se ligada. Quando a rede volta, essa ligação regista-se de novo no recetor e junta-se ao grupo sozinha. Não paras, não reinicias, não tocas em nada.

Duas coisas para acertar expectativas. Primeiro, a ligação que sobra tem de levar a transmissão toda, por isso, se o teu bitrate só ia caber num bom Wi-Fi, o bitrate adaptativo desce enquanto os dados móveis fazem o trabalho e sobe depois. Segundo, bonding é resistência e não velocidade extra: as tuas ligações nunca se somam num cano maior. Define o bitrate para o que uma boa ligação consegue levar e mal vais notar a passagem.

Testa de propósito, antes de precisares. Entra em direto com bonding em casa, espera que as estatísticas pareçam estáveis, depois desliga o Wi-Fi durante um minuto e observa. Vais ver a linha wifi ficar vermelha, a linha cell assumir, e tudo voltar quando ligares o Wi-Fi. Dez minutos disto valem mais do que qualquer quantidade de leitura, e é muito melhor aprender na cozinha do que a meio de uma transmissão.

Os erros que estragam a primeira tentativa a muita gente

Apontar para um endereço da tua própria rede

Este é o grande. Um recetor em 192.168.1.50 só é alcançável pelo teu Wi-Fi e de mais lado nenhum, por isso a ligação dos dados móveis não consegue registar-se e não estás com bonding, estás no Wi-Fi com passos a mais. O destino tem de ser um nome de host ou endereço público, ou seja, um relay, uma máquina alojada, ou um redirecionamento de porta UDP no router apontado para a tua máquina e endereçado pelo endereço público do router. A mesma regra vale para um portátil na tua secretária.

Deixar o stream id em branco ou colado pela metade

Os recetores autenticam quem publica, por isso um stream id vazio ou truncado dá-te uma ligação que não vai a lado nenhum. Cola a chave inteira, com o prefixo publish:, no campo Stream id.

Esperar mais bitrate

Duas ligações não se somam. Se definires um bitrate que só o teu Wi-Fi conseguiria levar, a transmissão vai parecer pior no momento em que os dados móveis fizerem o trabalho, e vais culpar o bonding pelo contrário do que ele fez. O bonding mantém-te em direto. O bitrate é outra decisão.

Uma VPN a correr no telemóvel

Uma VPN apanha todos os sockets do aparelho, por isso a app não consegue abrir um por rede e não sobra nada para fazer bonding. As estatísticas dizem-no diretamente quando acontece. Desliga a VPN, ou exclui a LOLS IRL dela nas definições da própria app de VPN.

Enviar srtla para um servidor SRT simples

O SRTLA precisa de um recetor a correr srtla_rec, que é o que volta a juntar as ligações. Um listener SRT simples não percebe o registo de grupo. Usa um relay, ou corre o srtla_rec à frente do teu servidor SRT como o guia de self-hosting descreve.

Escolher um relay do outro lado do mundo

A distância custa-te atraso que nunca recuperas, e um tempo de ida e volta longo o suficiente pode impedir a ligação de se estabelecer. Escolhe a região mais próxima: a app põe uma estrela na que corresponde ao país do teu SIM.

Quando estiver a funcionar

A seguir: usar os relays gratuitos