Fluxos SPTS

SPTS (Single Program Transport Stream) — fluxo MPEG-TS com um único programa; é a unidade básica de processamento do Perfect Streamer. O tipo de fluxo — SPTS ou MPTS — é escolhido na criação e não pode ser alterado posteriormente. Para um fluxo SPTS escolhe-se adicionalmente o tipo de conteúdo (valores conforme a interface): Default (audio + video), Audio only (som sem vídeo, canais de rádio) ou Video only.

Fluxos embaralhados (codificados) são suportados: o embaralhamento é detectado automaticamente e, durante esse período, as verificações dos fluxos elementares ficam suspensas. A configuração «Canal embaralhado» declara o fluxo permanentemente embaralhado e desativa a detecção automática.

Os requisitos gerais do fluxo de entrada estão listados em Requisitos do fluxo de entrada; os protocolos de recepção e de transmissão, na seção Planejamento e protocolos de transmissão de dados. O processamento de multiplexes é descrito em Fluxos MPTS. A criação e a configuração dos fluxos são realizadas na interface web (Fluxos).

Pipeline de processamento

Pipeline do fluxo SPTS: entradas, comutador de entradas, filtro TS, analisador, nivelamento de bitrate, sincronizador, saídas e subsistema OTT / DVR.

Pipeline do fluxo SPTS: entradas, processamento no nível do fluxo (comutador de entradas, filtro TS, analisador, nivelamento de bitrate, sincronizador), subsistema OTT / DVR e saídas.

Todas as entradas do fluxo convergem para o comutador de entradas; em seguida, o fluxo percorre as etapas sucessivas de processamento:

  1. Comutador de entradas — seleciona a fonte ativa e comuta o fluxo para a reserva em caso de falha (Redundância de fontes).

  2. Filtro TS — filtragem e modificação opcionais do MPEG-TS (Filtragem MPEG-TS, Modificação do fluxo).

  3. Analisador — verificação contínua da validade e medição do fluxo (Analisador); é pelo seu veredito que o comutador de entradas declara uma fonte em falha. Os dados do analisador são usados também pelo mosaico (Mosaico, desativado pela configuração «Gerar mosaico»), pela importação de EPG e pelo decodificador de legendas.

  4. Nivelamento de bitrate — preenchimento opcional até um bitrate constante e correção do intervalo de PAT/PMT (Controle de bitrate).

  5. Sincronizador — emissão dos pacotes no ritmo do PCR com compensação do jitter de rede (Sincronização). É também aqui que o gerador de EIT insere as tabelas do guia de programação (Gerador EIT).

Da saída do sincronizador, o fluxo é distribuído para todas as saídas: protocolos de transporte (Protocolos Peer de transmissão confiável), gravação em arquivo, multiplexador MPTS (Multiplexador), transcodificador (Transcodificadores), bem como para o subsistema OTT / DVR (OTT e DVR). Um fluxo SPTS também pode ter como fonte um programa isolado de um multiplex — a entrada demultiplexadora (tipo demuxer) o extrai de um fluxo MPTS ou de um receptor DVB pelo número do programa (Demultiplexador).

Redundância de fontes

Um fluxo pode ter várias entradas, mas apenas uma fica ativa de cada vez. A ordem das entradas na lista define a prioridade: a primeira é a principal, as demais são de reserva. Se a entrada ativa for declarada em falha, o fluxo comuta para a seguinte da lista; depois da última entrada, a varredura recomeça pela primeira. Uma entrada colocada em pausa é ignorada na comutação.

A falha é determinada pelo analisador: uma entrada é considerada em falha se o fluxo não passa na verificação de validade ou se não chegam dados por mais tempo que o tempo limite definido. A operação do fluxo em uma entrada de reserva é registrada por um alerta (Alertas (alerter)).

As configurações de comutação estão na aba «Fluxo» do editor do fluxo (Configurar fluxo):

«Tempo limite do fluxo (s)»

Tempo sem fluxo de entrada válido após o qual é executada a comutação para a entrada seguinte. Por padrão, 30 segundos.

«Intervalo de verificação (s)»

Período de reverificação das fontes. Por padrão, 60 segundos.

«Reverificar a entrada principal»

Enquanto o fluxo opera em uma entrada de reserva, as entradas situadas acima na lista são reverificadas com o intervalo de verificação. Assim que uma fonte de prioridade mais alta volta a ser válida, o fluxo retorna a ela. Ativado por padrão.

Filtragem MPEG-TS

Por padrão, o fluxo é retransmitido tal como está. A filtragem é aplicada em dois níveis: as regras de PID, separadamente em cada entrada; os filtros de tabelas, no nível do fluxo.

As regras de PID são configuradas na aba «MPEG-TS PID» da janela da entrada (Editor de entrada e saída):

«Aceitar PIDs (lista branca)»

Lista dos PIDs permitidos. Se a lista estiver vazia, tudo é permitido, exceto o que for proibido pela lista negra.

«Rejeitar PIDs (lista negra)»

Lista dos PIDs proibidos. Um PID indicado simultaneamente em ambas as listas é rejeitado.

Após a filtragem, a PMT é regenerada conforme a composição real dos fluxos elementares. As regras de PID são aplicadas antes da disposição automática de PIDs (Disposição automática de PIDs), se ela estiver ativada.

Os filtros de nível de fluxo estão na aba «MPEG-TS» do editor do fluxo, seção «Filtros» (todos desativados por padrão):

«Limpar tabelas desnecessárias»

Remove os dados de serviço não pertencentes ao programa e os fluxos elementares de tipos desconhecidos; os fluxos de tipos conhecidos (vídeo, áudio, teletexto, legendas) e as tabelas PAT/PMT são preservados. As tabelas individuais (SDT, EIT, NIT, TDT, CAT) são controladas por filtros próprios.

«Remover CAT / ECM / EMM»

Remove as tabelas e as mensagens dos sistemas de acesso condicional (CAS), incluindo os descritores CA da PMT — por exemplo, para limpar os resíduos de CAS após o desembaralhamento.

«Remover EIT»

Remove as tabelas do guia de programação da fonte. Por padrão, a EIT é transmitida de forma transparente.

«Remover NIT», «Remover TDT»

Removem as tabelas de rede e de marcação de tempo da fonte.

«Remover teletexto», «Remover legendas»

Removem os fluxos de teletexto e de legendas DVB juntamente com os seus registros na PMT.

«Remover a SDT original» (seção «SDT»)

Remove a tabela de descrição de serviço da fonte — por exemplo, ao encaminhar o fluxo para multiplexação posterior. Ao atribuir um nome de serviço próprio (Modificação do fluxo), a SDT original é substituída automaticamente e não é necessário ativar este filtro separadamente.

Nota

A remoção das tabelas obrigatórias (SDT, NIT, TDT, EIT, CAT) viola os requisitos da TR 101 290 quanto à sua presença no fluxo — trata-se de uma decisão consciente do operador, apropriada, por exemplo, ao encaminhar o fluxo para multiplexação posterior. Além disso, qualquer filtragem altera a composição dos pacotes do fluxo; sobre o impacto na precisão do PCR, veja Controle de bitrate.

Modificação do fluxo

Os dados de serviço próprios são definidos na seção «SDT» da aba «MPEG-TS». A geração da tabela é ativada pelo campo «Nome do serviço» (bem como pela geração ativa de EIT a partir do EPG): se a fonte não tiver SDT, a tabela é gerada; se tiver, é substituída pela tabela gerada. Os campos «Nome do provedor» e «Idioma» preenchem os campos correspondentes da tabela gerada. A configuração «ID da rede» define o identificador de rede para as tabelas EIT geradas quando a fonte não informa um identificador de rede próprio; se a fonte contiver um identificador, é ele que é usado.

O número do programa é reatribuído na seção «Número do programa»: ative «Alterar o número do programa» e defina «Novo número do programa». As tabelas PAT e PMT são regeneradas com o novo número; a SDT e a EIT também são regeneradas.

«Fixar o intervalo de PAT/PMT» — regenera as PAT/PMT e as insere com um intervalo em conformidade com a TR 101 290. Aplica-se a fontes cujas tabelas são raras ou irregulares.

A reatribuição de PIDs e de idiomas é feita na entrada, na aba «MPEG-TS PID» da janela da entrada:

«Reatribuir PIDs»

Pares «De PID» / «Para PID» — substituição dos identificadores dos fluxos elementares, por exemplo para adequar o fluxo ao plano de PIDs da rede. Com a disposição automática de PIDs (Disposição automática de PIDs) ativada, esses pares não têm efeito.

«Reatribuir o idioma do áudio»

Pares «PID de áudio» / «Novo idioma» — substituição do idioma da faixa de áudio na PMT.

A geração de EIT a partir de uma fonte externa de EPG é ativada na seção «Gerar EIT a partir do EPG» da aba «Fluxo»: selecionam-se a «Fonte de EPG» e o «Canal de EPG», e são inseridas no fluxo tabelas EIT com o guia de programação (Gerador EIT). A operação inversa é a configuração «Extrair EIT para a base de dados EPG», que exporta o guia de programação do fluxo para a base EPG do nó (Importação de EPG/XMLTV).

Para as entradas que recebem o fluxo de transporte original, está disponível o desembaralhamento BISS por software: na entrada define-se uma chave BISS-1 ou BISS-E, e o fluxo é decifrado antes da análise e do processamento subsequente. A recepção de serviços embaralhados a partir de um receptor DVB (CAM, BISS no nível do adaptador) é descrita em Receptor DVB.

Disposição automática de PIDs

Por padrão, os identificadores dos fluxos elementares passam da fonte para o fluxo de saída sem alteração, de modo que, ao comutar para uma entrada reserva, a disposição de PIDs na saída acompanha a fonte. A disposição automática atribui os PIDs por conta própria, pela mesma regra para qualquer entrada: o plano de PIDs do fluxo de saída permanece o mesmo, independentemente de qual fonte esteja ativa.

O modo está disponível apenas para SPTS e é ativado na seção «MPEG-TS» da aba «MPEG-TS» do editor de fluxo:

«Disposição automática de PIDs»

Ativa o modo.

«PID base»

O primeiro PID da janela: de 32 a 8127, 32 por padrão. O limite inferior coloca a janela fora da faixa reservada às tabelas PSI/SI; o superior mantém toda a janela abaixo do PID dos pacotes nulos.

O programa é renumerado em uma janela de 64 PIDs que começa no PID base:

PID

Finalidade

base

PMT

base + 1

vídeo

em seguida

faixas de áudio

em seguida

os demais fluxos elementares: teletexto, legendas DVB, dados, SCTE-35

em seguida

PCR, se não for transportado em um dos fluxos listados

em seguida

ECM: primeiro pelos descritores de nível de programa e depois pelos descritores de cada fluxo

do fim da janela para baixo

EMM

Dentro de cada grupo, a ordem da PMT original é preservada. Se o programa não tiver vídeo, a disposição é compactada: a primeira faixa de áudio vem logo após a PMT. Os EMM são alocados a partir do fim da janela, porque a CAT é analisada de forma independente da PMT e pode chegar antes — os endereços deles não devem depender do número de fluxos elementares.

As tabelas PAT, PMT e CAT são reconstruídas para a nova disposição. SDT, NIT, EIT e TDT não são alteradas: elas não contêm referências a PIDs.

O que considerar ao ativar o modo:

  • O modo ativa obrigatoriamente a filtragem MPEG-TS, de modo que os PIDs não declarados na PMT e na CAT deixam de sair. Um fluxo que dependia do trânsito de PIDs não declarados vai perdê-los.

  • A reatribuição manual de PIDs nas entradas não tem efeito e é ignorada, com um aviso no registro. A interface web oculta esses campos enquanto o modo está ativo; os pares salvos não se perdem e retornam quando ele é desativado.

  • As listas de aceitação e rejeição de PIDs continuam funcionando e são aplicadas antes da renumeração: apenas os fluxos elementares remanescentes recebem uma posição, e não restam lacunas na janela (Filtragem MPEG-TS).

  • O modo não se aplica à entrada de transcodificador (Transcodificadores) nem à entrada do gerador de teste (Fluxos de teste): ali o plano de PIDs é construído pelo codificador ou pelo gerador, portanto os campos PMT PID próprios deles continuam disponíveis.

  • Se o programa não couber na janela, a renumeração não é feita de forma alguma — a disposição permanece a original e um aviso vai para o registro; um fluxo renumerado pela metade nunca é emitido.

  • A alteração de qualquer uma das duas configurações é aplicada em tempo real: o fluxo em si não é reiniciado, mas suas entradas e saídas são reativadas — alguns segundos de ressincronização.

Nas estatísticas do fluxo, o bloco «Informações de mídia — fonte» mostra os PIDs que chegaram à entrada, enquanto «Informações de mídia — resultado» e a tabela de taxas de bits por PID mostram os atribuídos; com o modo ativado, a divergência entre eles é normal.

A disposição automática de PIDs não tem relação com a atribuição de PIDs no multiplexador MPTS (Atribuição de PID) — trata-se de uma configuração separada da entrada muxer.

Controle de bitrate

O modo de controle de bitrate é definido pelo campo «Modo de bitrate» na aba «MPEG-TS» (valores conforme a interface):

Original (padrão)

O fluxo é retransmitido sem alterações; as marcas PCR da fonte não são recalculadas.

VBR

Remove os pacotes NULL da fonte, o que minimiza o bitrate. Adequado quando o fluxo é usado apenas para difusão OTT ou trânsito. As marcas PCR não são recalculadas neste modo, portanto a precisão do PCR segundo a TR 101 290 na saída não é garantida.

CBR (auto stuffing)

Nivela o bitrate para um valor constante mediante a inserção de pacotes NULL (stuffing). O bitrate alvo é determinado automaticamente: é fixado alguns segundos após a ativação, é elevado em caso de excesso sustentado e é reduzido gradualmente se o pico do conteúdo permanecer por muito tempo abaixo do alvo. A mudança do alvo não interrompe a emissão do fluxo.

CBR (explicit stuffing)

O mesmo, mas o bitrate alvo é definido explicitamente pelo campo «Bitrate de preenchimento (kbps)». Defina o valor com margem acima do bitrate real do conteúdo.

Nos modos CBR, as marcas PCR são recalculadas a partir dos bytes efetivamente transmitidos, de modo que a saída atende aos requisitos da TR 101 290 quanto à precisão do PCR. Adicionalmente, com o preenchimento ativo, a taxa de repetição do PCR na saída é mantida dentro da norma mesmo em quadros de vídeo longos. Nesse caso, o analisador mede exatamente o fluxo emitido e nivelado (Analisador).

Quando o CBR é necessário. Qualquer operação que insira ou remova pacotes — os filtros de tabelas e de PID, a geração de SDT e EIT, a correção do intervalo de PAT/PMT, a alteração do número do programa, bem como o próprio modo VBR — desloca a posição do conteúdo em relação às suas marcas PCR. Se o destinatário do fluxo exigir conformidade com a TR 101 290, por exemplo na difusão DVB, ative o modo CBR: o preenchimento mascara essas alterações mediante o recálculo do PCR. Para o fluxo situado após o transcodificador, ative o modo CBR no fluxo receptor (PCR e taxa de bits do fluxo de saída).

O estado atual do preenchimento — o bitrate alvo e a taxa de inserção de pacotes NULL — é exibido nos dados da entrada ativa na página do fluxo (Fluxos, seção «Preenchimento»; a seção fica visível apenas enquanto o preenchimento estiver ativo).

Sincronização

O sincronizador emite os pacotes para as saídas no ritmo das marcas PCR da fonte — por isso, marcas PCR válidas são obrigatórias para o fluxo de entrada. Entre a recepção e a emissão, o fluxo é retido em um buffer de jitter, que suaviza a irregularidade da chegada dos pacotes vindos da rede.

O buffer é configurado separadamente em cada entrada (janela da entrada, Editor de entrada e saída; configurações adicionais, nomes conforme a interface):

Auto jitter buffer

Seleção automática do atraso conforme o tipo de entrada: as entradas TCP e HLS usam um buffer ampliado; as demais, o padrão. Ativado por padrão.

Jitter buffer (ms)

Tamanho do buffer definido manualmente, quando o modo automático está desativado (por padrão, 500 ms). Aumente o valor se, em uma rede instável, o buffer se esvaziar regularmente.

PCR discontinuity window (ms)

Janela do salto de PCR admissível (por padrão, 1000 ms). Um salto além da janela é considerado uma descontinuidade do fluxo e provoca uma ressincronização forçada.

A divergência lenta entre o ritmo do PCR da fonte e o relógio do nó é eliminada pelo compensador de deriva: a correção é aplicada de forma suave, em microdeslocamentos, sem ressincronização forçada e sem interromper a emissão. O controle está na aba «Análise» do editor do fluxo: «Compensação da deriva de sincronização» (ativada por padrão) e «Janela suave da deriva de sincronização (ms)» — a zona morta dentro da qual nenhuma correção é aplicada (por padrão, 500 ms). A ressincronização forçada permanece como mecanismo de reserva para descontinuidades reais do fluxo.