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

Configure o bonding srtla no LOLS IRL, leia os indicadores por conexão enquanto transmite e saiba o que esperar na primeira vez que uma rede cair.

O bonding manda a sua transmissão por todas as redes que o celular tem ao mesmo tempo. É a diferença entre uma live que acaba quando o Wi-Fi cai e uma que segue pelos dados móveis sem você encostar em nada. Configure uma vez e é só o seu jeito de entrar ao vivo.

O que você precisa antes

Configurando

  1. Pegue os dados do seu receptor. Num relay gratuito, é uma chave de relay-auth.lols.gg, que já vem no formato de stream id. Na sua própria máquina, é o hostname, a porta UDP e o stream id que o seu servidor espera.
  2. Abra Streams e adicione um destino. No app, vá em Streams, toque em + e escolha SRTLA entre os três chips de protocolo. SRT é uma conexão com o seu próprio receptor, RTMP vai direto para uma plataforma, SRTLA é o que tem bonding.
  3. Preencha o host e a porta. Com um relay, toque no chip da sua região e o host, a porta e o nome se preenchem sozinhos. A região mais próxima do país do seu chip tem uma estrela. Com o seu próprio receptor, digite o hostname público e a porta UDP em que ele escuta.
  4. Cole a chave em Stream id. Esse é o campo que o pessoal erra. Uma chave de relay já traz o prefixo publish:, então cole inteira em Stream id, não no nome e não no fim do host.
  5. Deixe a latência em 2000 ms para começar. É o padrão e é um bom valor. Mais alta aguenta um sinal pior, mais baixa corta o atraso mas deixa menos espaço para reenviar um pacote perdido. Quando você estiver ao vivo, o app mostra o tempo de ida e volta que está medindo e sugere um valor para acompanhar, então ajuste depois com números reais em vez de chutar agora.
  6. Salve e confira se o destino está ligado. Um destino salvo mas não ativado é a forma mais silenciosa de não estar transmitindo.
  7. Entre ao vivo e expanda as estatísticas. Toque no overlay de estatísticas na tela ao vivo para expandir. Você quer ver uma linha por conexão: wifi e cell, cada uma com o seu bitrate e o seu tempo de ida e volta. Duas linhas quer dizer que o bonding está ativo. Uma linha quer dizer que não, e os erros abaixo explicam por quê.

Lendo os indicadores

Recolhido, o overlay mostra um ponto de saúde, o seu bitrate, a taxa de quadros do encoder, o tempo de ida e volta e há quanto tempo você está ao vivo. Tocar nele abre os detalhes:

LeituraO que ela diz
send bufferO indicador que avisa antes, e o que você deve vigiar. O buffer enche antes de a imagem travar, então um valor subindo é o aviso de que uma conexão está sofrendo, não o relatório de que ela já falhou.
targetO bitrate que o bitrate adaptativo está mirando no momento, que cai e sobe sozinho conforme as condições mudam.
dropped e retransmitPacotes perdidos e pacotes reenviados. Alguns retransmits na rede celular são normais, uma contagem de dropped subindo não é.
Uma linha por conexãoMarcada como wifi, cell ou eth, cada uma com o seu bitrate e o seu tempo de ida e volta, para você ver qual rede está carregando o quê.
O ponto em cada linha de conexãoVerde é ativa e passando tráfego, âmbar é conectando ou travada, vermelho é caída. Uma linha vermelha com a transmissão no ar é o bonding fazendo o trabalho dele.
Uma linha por destinoCom nome, então se você manda para vários lugares dá para ver qual está fora enquanto os outros estão bem.

O que acontece quando uma conexão cai

Nada dramático, e esse é o ponto. A linha da conexão que falhou fica vermelha, as outras conexões pegam o tráfego e a transmissão continua conectada. Quando a rede volta, essa conexão se registra de novo no receptor e entra no grupo sozinha. Você não para, não reinicia, não encosta em nada.

Duas coisas para alinhar expectativa. Primeiro, a conexão que sobrou tem que carregar a transmissão inteira, então se o seu bitrate só cabia num Wi-Fi bom, o bitrate adaptativo vai reduzir enquanto a rede celular faz o trabalho e subir de novo depois. Segundo, bonding é resiliência e não velocidade extra: as suas conexões nunca se somam num cano maior. Ajuste o bitrate para o que uma boa conexão aguenta e você mal vai notar a troca.

Teste de propósito, antes de precisar. Entre ao vivo com bonding em casa, espere as estatísticas ficarem estáveis, depois desligue o Wi-Fi por um minuto e observe. Você vai ver a linha do wifi ficar vermelha, a linha do cell assumir e tudo voltar quando você ligar o Wi-Fi de novo. Dez minutos disso valem mais do que qualquer quantidade de leitura, e é bem melhor aprender na sua cozinha do que no meio de uma live.

Os erros que custam a primeira tentativa de muita gente

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

Esse é o grande. Um receptor em 192.168.1.50 é alcançável pelo seu Wi-Fi e de mais lugar nenhum, então a sua conexão celular não consegue se registrar e você não está com bonding, está no Wi-Fi com passos extras. O destino precisa ser um hostname ou endereço público, ou seja, um relay, uma máquina hospedada, ou um redirecionamento de porta UDP no roteador apontando para o seu computador e endereçado pelo endereço público do roteador. A mesma regra vale para um notebook na sua mesa.

Deixar o stream id em branco ou colado pela metade

Os receptores autenticam quem publica, então um stream id vazio ou cortado te dá uma conexão que não leva a lugar nenhum. Cole a chave inteira, com o prefixo publish:, no campo Stream id.

Esperar mais bitrate

Duas conexões não se somam. Se você ajustar um bitrate que só o seu Wi-Fi aguentaria, a transmissão vai parecer pior no momento em que a rede celular assumir, e você vai culpar o bonding pelo contrário do que ele fez. O bonding te mantém ao vivo. Bitrate é outra decisão.

Uma VPN rodando no celular

Uma VPN captura todos os sockets do aparelho, então o app não consegue abrir um por rede e não sobra nada para juntar. As estatísticas avisam isso diretamente quando acontece. Desligue a VPN ou exclua o LOLS IRL dela nas configurações do próprio app de VPN.

Mandar srtla para um servidor SRT simples

O SRTLA precisa de um receptor rodando srtla_rec, que é quem junta as conexões de volta. Um listener SRT simples não entende o registro de grupo. Use um relay, ou rode o srtla_rec na frente do seu servidor SRT como o guia de self-hosting descreve.

Escolher um relay do outro lado do mundo

A distância te custa um atraso que você nunca recupera, e um tempo de ida e volta longo o bastante pode impedir a conexão de se estabelecer. Escolha a região mais próxima: o app marca com estrela a que corresponde ao país do seu chip.

Depois que estiver funcionando

Próximo: usando os relays gratuitos