Skip to content

CBR para DVB

Um modulador não precisa de uma taxa média, precisa de uniformidade no nível de pacotes TS: a banda está alocada e o stream deve ocupá-la exatamente, sem quedas nem picos. O mesmo requisito vem dos receptores profissionais e das redes onde o transporte é contado por banda, e não por uma média por minuto.

O CBR no Mcaster é uma propriedade do multiplexador de saída, não um botão separado de «ligar CBR».

O que o multiplexador faz

  • A taxa-alvo é derivada dos bitrates das trilhas — com uma folga de cerca de 5% para o crescimento e um orçamento para as tabelas de serviço.
  • Os vazios são preenchidos com pacotes nulos (PID 0x1FFF): a banda fica ocupada de modo uniforme mesmo quando os quadros chegam em rajadas.
  • O PCR é posicionado a partir de um relógio sem deriva, por isso a divergência entre PCR e DTS não se acumula nem em muitas horas de transmissão.
  • O modelo de buffer do decodificador (HRD) é levado em conta — estouros e esvaziamentos são acompanhados em vez de descobertos no receptor.

A uniformidade é medida contra o relógio interno do stream (27 MHz), não contra o relógio de parede: o arranjo não depende de quão irregularmente os quadros chegam da fonte.

O que a uniformidade custa

As três exigências de um multiplex — arranjar os pacotes de modo uniforme, nunca travar, nunca perder nada — são satisfeitas duas a duas, mas não as três juntas. A uniformidade é uma afirmação sobre o futuro, enquanto os dados são um fato sobre o passado: para arranjar os pacotes uniformemente, o cronograma precisa conhecer o ritmo com antecedência, e o ritmo só pode ser medido pelo que já chegou.

Na prática, isso significa:

  • Um PID sem nada para enviar cede o seu lugar em vez de parar o multiplex. Uma trilha de áudio anunciada na PMT mas silenciosa não deve travar o vídeo — e não trava.
  • Um PID atrasado se recupera dentro da janela em vez de ser descartado. Um mux de broadcast clássico perde dados neste ponto; aqui a troca é feita ao contrário.
  • O ritmo é medido pelo PES empacotado, não inferido da banda declarada multiplicada por uma constante.

O que daí segue para o operador: defina o bitrate de saída com honestidade, com folga para os picos, e não no limite do bit. Uma banda subestimada não é «qualidade um pouco pior», é um PID sistematicamente atrasado.

Configure as trilhas de saída

Abra o stream, a aba Transcodificador. Você pode começar de um preset — por exemplo Escada padrão 1080/720/360 + AAC — e editar os degraus a partir daí.

Num degrau do bloco Vídeo (escada):

  • Bitrate (kbps) — a taxa-alvo da trilha. A soma das trilhas mais as tabelas de serviço é a banda que o fluxo de transporte vai ocupar.
  • Comprimento do GOP e Estrutura do GOP — para broadcast, o GOP costuma ser de exatamente um segundo: um ponto de entrada para o receptor e para a emenda. O botão Unificar GOP o alinha em todos os degraus.
  • Codec — com o valor Como está, o degrau não é recodificado. Se a fonte já chegou na forma certa, o multiplexador não precisa de transcodificador para arranjá-la de modo uniforme.
  • Altura, Rate control e Preset do codificador — as demais propriedades do degrau.

O bloco Codificação escolhe quem faz o trabalho: CPU ou GPU NVIDIA (com uma placa escolhida, ou automaticamente a menos carregada).

Warning

Um degrau passthrough ao lado de degraus codificados degrada a escada: seu GOP e seus quadros-chave não estão alinhados com os demais degraus. O painel marca esse degrau à parte.

Veja Vídeo anamórfico e SAR para preservar vídeo anamórfico, obter pixels quadrados e escolher uma estratégia de redimensionamento.

O transcodificador «grava» o logotipo do canal ou uma marca d'água na trilha de vídeo: a imagem aparece em todas as saídas — o multicast para o modulador, a entrega OTT e as cópias gravadas. O logotipo da escada inteira é definido pelo cartão Logotipo da escada; os mesmos campos vivem nos ajustes avançados de cada degrau.

O cartão define o logotipo uma vez para a escada inteira:

  • Atribuir — escolher a imagem da biblioteca de logotipos: busca por nome e upload de um arquivo PNG, JPEG ou WebP de até 1 MB.
  • Posição no quadro — canto superior esquerdo, superior direito, inferior esquerdo, inferior direito ou centro. Os deslocamentos são contados do canto escolhido para dentro e, no centro, a partir do centro.
  • Altura da imagem (…p), px — a altura do logotipo no degrau superior; a largura vem das proporções da imagem. Campo vazio significa o tamanho nativo da imagem, que aparece ao lado da pré-visualização.
  • Deslocamento X, Deslocamento Y — os deslocamentos em pixels.

Os valores são dados para o degrau superior e recalculados nos demais na proporção da sua altura: abaixo dos campos dá para ver o que cada degrau vai receber antes de Salvar. O logotipo vai só num degrau com codificação: o passthrough («Como está») e os codecs RAW não o têm.

O cartão Logotipo da escada com uma imagem atribuída e o recálculo por degraus

Desentrelaçamento

Uma entrada entrelaçada — SD MPEG-2, 1080i de broadcast — codificada em vídeo progressivo aparece como serrilhado. O Desentrelaçamento vive no bloco Decodificador, porque é uma propriedade da entrada, e não de um degrau: a decodificação acontece uma única vez e a imagem resolvida vai para todas as trilhas de saída progressivas. Um degrau com saída entrelaçada recebe o quadro antes do filtro.

Modo O que faz
Automático (apenas quadros entrelaçados) o padrão: o filtro é aplicado aos quadros que o decodificador marcou como entrelaçados; uma entrada progressiva passa direto sem custo
Forçado (todos os quadros) para fontes que mentem sobre o entrelaçamento
Desativado nenhum filtro é construído, os quadros vão para o codificador como estão

O desentrelaçamento não muda a taxa de quadros: um quadro progressivo por quadro de entrada.

Saída entrelaçada

Um receptor de broadcast 1080i ou 576i precisa de um sinal entrelaçado, enquanto o transcodificador codifica em progressivo por padrão. Para que um degrau saia entrelaçado, clique em Mais nele e ative Saída entrelaçada.

A seção Mais de um degrau 1080p com Saída entrelaçada marcada

O que acontece com o degrau:

  • A ordem dos campos vem da fonte — campo superior primeiro ou inferior primeiro; o transcodificador não a altera. Uma fonte progressiva não tem ordem de campos e sai com o campo inferior primeiro; o comando abaixo verifica a ordem.
  • Os campos são processados separadamente — a mudança de tamanho e a conversão de cor não misturam os campos entre si. A exceção é uma fonte 4:2:0 cuja altura não é múltipla de 4 (por exemplo, NTSC de 486 linhas): esse quadro não se divide em dois campos iguais, então o transcodificador o processa inteiro e os campos se misturam; no log aparece então o aviso interlaced source cannot be split into fields.
  • O desentrelaçamento não afeta este degrau — ele recebe o quadro da fonte antes do filtro, enquanto os degraus progressivos da mesma escada o recebem depois. Por isso um 1080i de broadcast e um 720p progressivo para a internet convivem no mesmo stream.

O vídeo é codificado em H.264 com MBAFF: a decisão «campo ou quadro» é tomada para áreas dentro do quadro.

A caixa de seleção não está disponível em todos os degraus:

  • Apenas com H.264 — ao trocar para outro codec, a caixa é desmarcada sozinha.
  • Apenas com codificação em CPU — com GPU NVIDIA a caixa não pode ser marcada, e uma já marcada não é desmarcada sozinha: Salvar falha até que você a desmarque.
  • Altura de saída múltipla de 4 — cada campo ocupa metade do quadro. Um degrau sem mudança de tamanho usa a altura da fonte, e o transcodificador a verifica ao iniciar.

Uma entrada entrelaçada sem compressão (SDI, ST 2110) não é codificada em um degrau entrelaçado: essa entrada não traz a ordem dos campos, e os campos sairiam trocados. O transcodificador não inicia esse degrau e informa o motivo.

Se uma configuração não for válida, Salvar falha e o motivo aparece sob a caixa do degrau. Se um degrau não iniciar com o stream já em execução, acima das abas do stream aparece o aviso O transcodificador não está funcionando com o motivo e um botão para a aba Transcodificador.

Um degrau 542p com Saída entrelaçada marcada e o motivo da recusa abaixo

A ordem dos campos da saída é verificada quadro a quadro. Não confie no resumo do stream no ffprobe (field_order): dependendo de como o stream é gravado, na saída do x264 ele pode mostrar tt mesmo com o campo inferior primeiro.

ffprobe -v error -select_streams v -show_entries frame=interlaced_frame,top_field_first -of csv=p=0 out.ts | sort | uniq -c

As linhas 1,1 significam campo superior primeiro; 1,0, campo inferior primeiro; 0,0, quadros progressivos: o degrau não saiu entrelaçado.

Verificação

O que olhar na saída:

  • a taxa no receptor — ela não deve flutuar; uma queda significa que o multiplex não tinha nada a enviar;
  • o jitter do PCR e os contadores de continuidade — veja TR 101 290; um stream uniforme com PCR incorreto não ajuda um modulador;
  • as tabelas de serviço — o receptor deve ver o serviço sob o número esperado, veja Saída MPEG-TS.

Sobrepor as tabelas num destino individual não quebra o CBR: o destino recebe uma cópia da saída compartilhada com PIDs e tabelas reescritos, enquanto o arranjo dos pacotes e o PCR permanecem os do multiplex compartilhado.

O que vem a seguir