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;
  • 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».

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 no mesmo grupo e porta 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 e sobrevivem ao trânsito até a saída. Processá-los — substituir, compensar, inserir — ainda não existe no Mcaster.

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, 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