Skip to content

Captura de multicast e MPTS

Um fluxo de transporte por UDP é a entrada principal da cabeça de rede. O sinal chega como um serviço único em um grupo (SPTS) ou como um multiplex no qual o programa de que você precisa é um entre uma dúzia (MPTS). O Mcaster aceita os dois casos e, no segundo, recebe o tronco uma única vez para todos os seus programas, sejam quantos streams você montar a partir dele.

Conecte o grupo

Crie um stream e pressione + Adicionar fonte na aba Fontes. O protocolo é UDP MPEGTS:

  • Host — o endereço do grupo multicast, por exemplo 239.255.1.77, ou 0.0.0.0 para unicast em uma porta;
  • Porta — a porta do grupo;
  • 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 tolerar antes de reiniciar a captura; campo vazio significa o padrão.

Pressione Salvar. Se no campo Host houver um grupo multicast, a estação se inscreve nele por conta própria (IGMP para IPv4, MLD para IPv6). O unicast difere só no endereço: 0.0.0.0 significa «escutar a porta em todas as interfaces».

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.

Um programa de um tronco MPTS

Um multiplex de um satélite ou de um parceiro carrega vários serviços em um mesmo grupo. O necessário é escolhido pelo campo Programa (PNR) da mesma fonte: crie um stream por serviço, todos com o mesmo grupo e porta e com números de programa diferentes.

O campo vazio significa «a primeira com conteúdo» — é o que o formulário diz abaixo dele.

O que importa aqui na prática:

  • O tronco é recebido uma única vez. Dois streams com o mesmo grupo, porta, interface e fonte SSM dividem o socket e o demultiplexador: a rede vê uma única inscrição e a máquina faz uma única análise do transporte. Dez programas de um tronco não custam dez capturas.
  • Sem número indicado, toma-se o primeiro programa que realmente carrega mídia. Não o primeiro pelo PSI: as tabelas nos troncos costumam estar desatualizadas e anunciam serviços cujos PIDs foram cortados há tempos.
  • Um número ilegível é recusado pelo formulário, e não entendido como «o tronco inteiro»: de outro modo o stream viraria uma salada de todos os programas do multiplex.
  • Os contadores são atribuídos por assinante, enquanto os erros do tronco como um todo são duplicados para todos: por stream vê-se tanto os seus próprios PIDs quanto o problema ocorrido com o transporte inteiro.

Captura de um remetente específico (SSM)

Quando várias fontes transmitem em um grupo e só uma delas interessa, coloque o endereço dela no campo Origem (SSM).

O kernel se inscreve no grupo indicando o remetente (IP_ADD_SOURCE_MEMBERSHIP, IGMPv3) e descarta o tráfego alheio antes que ele chegue à estação. Suportado para IPv4.

Captura por HTTP

O mesmo fluxo de transporte servido por HTTP é a forma habitual de pegar o sinal de um parceiro quando o multicast não circula entre vocês. O protocolo da fonte é HTTP MPEGTS, com uma URL e, se necessário, um Tempo limite do peer (ms).

A transferência chunked é suportada. Uma conexão rompida e uma conexão viva mas silenciosa são distinguidas e aparecem de forma diferente no status da entrada — são dois diagnósticos diferentes: «fomos desconectados» e «pararam de enviar».

Uma entrada HTTP tem o buffer de entrada ligado por padrão (30 segundos): uma fonte assim quase sempre chega em rajadas e, sem o buffer, as rajadas viajariam para a saída.

O que é analisado do stream

Vídeo H264, HEVC, MPEG-2; áudio AAC, AC3, EAC3, MPEG-2 audio; teletexto DVB e legendas DVB com seus descritores, legendas CEA-608/708, metadados KLV, marcadores SCTE-35, descritores de idioma das trilhas do PMT.

Os marcadores SCTE-35 são recebidos, atravessam o stream até cada saída e são reunidos em intervalos comerciais, veja Marcas publicitárias.

O que deve estar correto na rede

  • O multicast não viaja pela internet. A estação deve estar no mesmo segmento que a fonte do grupo, ou a rede entre elas deve rotear multicast.
  • Quem se inscreve é a estação. A requisição IGMP sai dela, e os switches com IGMP snooping entregam o stream apenas aos inscritos. Não há nada a configurar na estação para isso — o importante é que a rede deixe passar a inscrição.
  • Verifique na máquina da estação. O tcpdump -i <iface> host 239.255.1.77 executado nela responde à pergunta «os pacotes chegam?», e nenhuma verificação feita de uma máquina vizinha a substitui.

Aplicação das mudanças

A troca de grupo, porta, interface, número de programa ou URL reinicia a fonte. A troca de apenas um tempo limite é aplicada em tempo real, sem interromper a captura.

O que vem a seguir