Skip to content

Fonte multicast

A imagem típica do operador de cabo: um headend ou um codificador distribui os streams como transport streams MPEG-TS em grupos multicast da rede local — um grupo por stream. Esta página conecta um grupo assim a um stream do Catena.

Conecte o grupo

Crie um stream e pressione + Adicionar fonte na aba Fontes. Escolha o protocolo MPEG-TS/UDP e preencha:

  • Host — o endereço do grupo multicast, por exemplo 239.255.1.77.
  • Porta — a porta do grupo, por exemplo 5500.
  • Interface de entrada — o nome da interface de rede ou seu endereço IPv4 local; o campo vazio deixa a escolha ao sistema.
  • Tempo limite do peer (ms) — quanto silêncio no grupo tolerar antes de reiniciar a recepção. Campo vazio é um padrão sensato.

Pressione Salvar. O streamer entra no grupo, captura o stream, e o status do stream fica verde; o cartão de saúde mostra a taxa de bits e as trilhas.

A fonte multicast conectada e funcionando

Escolha da interface de entrada

Se o multicast chega por uma placa de rede dedicada, defina a Interface de entrada na fonte MPEG-TS/UDP da aba Fontes. Por exemplo, defina Host como 239.255.1.77, Porta como 5500 e Interface de entrada como eno2. Em vez do nome, você pode usar o endereço IPv4 dessa placa, por exemplo 192.168.20.10. A assinatura do grupo é criada nessa interface mesmo quando a rota padrão usa eno1.

O campo se aplica ao multicast IPv4, incluindo multicast com fonte específica (SSM). Para IPv6, deixe-o vazio: a escolha explícita de interface para IPv6 não é suportada. No unicast, esse campo não escolhe a interface de recepção. Limpe o campo e salve para voltar à escolha pela tabela de rotas do sistema operacional. A mudança de interface recria a assinatura e interrompe brevemente a captura.

O nome ou endereço deve pertencer ao streamer que recebe o sinal. Se a interface não existir ou não tiver endereço IPv4, a fonte não iniciará; o status da entrada mostrará a causa. Em um cluster, verifique a configuração em cada streamer onde esse stream possa ser alocado.

Se a fonte for configurada por URL, use udp://239.255.1.77:5500?interface=eno2. O formato udp://eno2@239.255.1.77:5500 também é aceito; se o parâmetro interface também estiver presente, ele tem prioridade.

A interface para enviar multicast é configurada separadamente em cada push.

Buffer de recepção

O núcleo do sistema mantém uma fila de datagramas recebidos no socket UDP: enquanto o streamer está ocupado com outra coisa, os pacotes esperam nela em vez de se perder. O campo Buffer de recepção (bytes) da entrada define o tamanho dessa fila. Um campo vazio usa o padrão de 4 MiB — cerca de um segundo de um multiplex completo de 30–40 Mbit/s; os 212 KiB de fábrica do núcleo cobririam apenas 40–50 ms, e qualquer atraso do escalonador viraria perdas que aparecem como erros CC nos contadores.

O que importa na prática:

  • Um socket por endereço. Todos os fluxos do mesmo grupo e porta dividem também o buffer: vale o último valor configurado explicitamente, e a mudança se aplica em quente, sem recriar a assinatura.
  • O núcleo pode cortar a solicitação. Sem CAP_NET_ADMIN o tamanho é limitado pelo sysctl net.core.rmem_max — abaixo do campo aparece um aviso com o tamanho real. Aumente o rmem_max até o valor pedido ou conceda ao streamer CAP_NET_ADMIN: então a solicitação é aplicada por inteiro.
  • O cartão de saúde nomeia a causa. Quando o núcleo começa a descartar datagramas, a entrada recebe o problema «Buffer de recepção pequeno», e uma dica abaixo do campo diz «pelo menos N»: quantos bytes 200 ms do bitrate atual ocupam. Os erros CC e a dessincronização ao lado são consequências: aumente primeiro o buffer.

A folga ficou abaixo de 200 ms do bitrate — o formulário indica até onde aumentar o buffer

A perda de datagramas nomeada no cartão de saúde: a causa é o buffer de recepção; erros CC e dessincronização são suas consequências

O que deve valer na rede

  • Multicast não viaja pela internet. O streamer que recebe o grupo deve estar no mesmo segmento de rede que a fonte — ou a rede no meio deve rotear multicast.
  • A assinatura é feita pelo streamer. Ele envia um IGMP join; switches com IGMP snooping entregam o stream só aos assinantes. Nada precisa ser configurado no streamer para isso — o que importa é a rede deixar o join passar.
  • Uma entrada — um grupo e uma porta. Cada stream tem seu próprio grupo: é assim que o headend também os distribui.

Adiante por tarefas

  • O stream do grupo normalmente já vem comprimido (H.264 ou MPEG-2). H.264/AAC toca como está; se o headend envia MPEG-2 — adicione um transcodificador, ou os reprodutores de navegador não lerão o stream.
  • Entradas TS levam um contador de erros de continuidade: o limiar Limite de erros CC põe a fonte em «degradada» com perda de pacotes — veja Reserva de fontes.
  • Um grupo multicast também pode ser reserva: uma segunda entrada com prioridade abaixo da principal.

Se o grupo não foi capturado

  • O cartão diz Morta, sem taxa de bits. Os pacotes não chegam ao streamer: grupo ou porta errados, outra VLAN, o IGMP join barrado por um switch, um firewall cortando UDP. Verifique da máquina do streamer — é ele quem assina.
  • Há taxa de bits mas o stream não está verde. O stream chega mas as trilhas esperadas não são encontradas nele — olhe o cartão de saúde: o que o streamer extraiu do stream.
  • A fonte pisca: funcionando — degradada. Perda de pacotes na rede; o contador de erros CC no cartão cresce. É um problema de rede, não do stream.