Transcodificadores¶
Os transcodificadores recodificam o vídeo e o áudio do fluxo: reduzem a taxa de bits para OTT ou para o multiplex, alteram o codec e a resolução, preparam variantes para pacotes adaptativos. Cada transcodificador funciona como um processo separado do nó; é suportado o esquema «um para muitos» — a partir de um único decodificador é possível obter vários fluxos de saída com configurações de codificação diferentes. A transcodificação está disponível somente para fluxos SPTS; o fluxo de origem deve conter tanto vídeo quanto áudio.
Arquitetura do transcodificador: um decodificador (comum) e N ramificações independentes «processamento + codificador»; as faixas de áudio são processadas separadamente do vídeo, as legendas e o teletexto passam de forma transparente.¶
Conexão¶
O transcodificador conecta dois ou mais fluxos:
No fluxo de origem é adicionada uma saída do tipo transcoder — este é o decodificador. Em suas configurações, é selecionado o backend de transcodificação (veja abaixo).
No fluxo de resultado é adicionada uma entrada do tipo transcoder — este é o codificador. Em suas configurações, é selecionado o decodificador de origem em funcionamento (campo Decoder).
O passo 2 é repetido para cada variante adicional — todas elas utilizam o decodificador comum.
Em seguida, o fluxo de resultado funciona como um fluxo SPTS comum: pode ser distribuído em OTT, gravado em DVR, enviado ao multiplexador.
Backends e codecs¶
O backend é selecionado no decodificador (campo Transcoder backend; os valores são dados como na interface):
- Video pass-through
O vídeo passa sem recodificação; somente o áudio é transcodificado. Esse modo é executado pelo transcodificador por software, por isso o pacote de transcodificação por software deve estar instalado (Transcodificadores).
- Software (CPU)
Transcodificação por software na CPU.
- NVidia (GPU)
Transcodificação por hardware em processadores gráficos NVIDIA.
- Intel VPL (GPU)
Transcodificação por hardware em processadores gráficos Intel.
Para os backends de GPU, o dispositivo é selecionado pelo campo GPU device selector (configuração avançada). Isso é necessário em servidores com várias placas. Os pacotes dos transcodificadores são instalados separadamente (Transcodificadores); os backends instalados, suas versões e os dispositivos encontrados são mostrados na tela «Sobre o sistema» (Sobre o sistema).
O decodificador aceita vídeo MPEG-2, H.264, HEVC e áudio MPEG (Layer 1–3), AAC, AC-3. O codificador produz vídeo H.264 e HEVC (o codificador NVIDIA não suporta MPEG-2; o MPEG-2 é codificado pelos backends Software e Intel VPL) e áudio MPEG Layer II e AAC.
Particularidades do decodificador:
fluxos entrelaçados (interlace) são suportados na entrada e na saída; para H.264 e HEVC, o formato interlace alternate (campos separados) é convertido em interleaved;
para HEVC é suportado o perfil Main10 com BT.709 (SDR) e BT.2020 (HDR); o codificador HEVC utiliza sempre o perfil Main com BT.709;
a taxa de quadros variável (VFR) é convertida em constante;
são suportados fluxos sem quadros IDR.
Configurações do decodificador¶
São definidas na saída do tipo transcoder do fluxo de origem (os nomes são dados como na interface; todas as configurações listadas abaixo são avançadas):
- Fix PAR (N/D), Fix frame rate (N/D)
Dicas para corrigir os dados do fluxo de entrada: elas não transformam o fluxo, mas corrigem os parâmetros quando a fonte não os informa ou os informa incorretamente. Fix PAR — a relação de aspecto do pixel como fração (por exemplo, 16/9 para Wide SD); Fix frame rate — a taxa de quadros como fração, caso ela esteja ausente no fluxo (PAL — 25/1, NTSC — 30000/1001, cinema — 24/1).
- Convert to BT.709
Conversão dos formatos de cor SD (BT.470-2 PAL, SMPTE 170M NTSC) em BT.709.
- Watchdog timeout
Tempo limite do reinício por watchdog do processo do transcodificador.
O processo do transcodificador mantém sempre um registro detalhado; não é necessária uma configuração de rastreamento separada (Controle do funcionamento). O registro fica apenas na memória do nó; como salvá-lo para análise está descrito em Registros do transcodificador.
Configurações do codificador¶
São definidas na entrada do tipo transcoder do fluxo de resultado:
- Encoder
Codec de vídeo: MPEG-2, H.264 (padrão) ou HEVC.
- Video profile (H.264)
Perfil de codificação H.264: Main ou High.
- Video rate control
O modo de controle de bitrate de vídeo: taxa constante — CBR (constant); variável com bitrate médio — VBR (average bitrate); variável com teto — VBR (maximum bitrate). O padrão é a taxa constante.
Em ambos os modos variáveis, o codificador deixa de preencher seu próprio fluxo elementar, de modo que a economia de banda só ocorre onde o fluxo receptor não nivela o bitrate de volta: o preenchimento é definido pelo campo «Modo de bitrate» na aba «MPEG-TS» desse fluxo (Controle de bitrate). Não confunda esses dois campos: «Modo de bitrate» diz respeito ao fluxo de transporte como um todo; Video rate control, apenas ao codificador de vídeo.
O modo surgiu na 2.0.2.334. Em um nó de compilação anterior, o campo não existe, e um transcodificador de compilação anterior não o lê e codifica sempre com taxa constante.
- Video bitrate (kbps)
O bitrate de vídeo é um único número para os três modos; o que ele significa é definido pelo Video rate control, e o rótulo do campo muda junto com o modo. Com taxa constante, o número é ao mesmo tempo o alvo e o teto do buffer. Com bitrate médio, o número é a taxa média, e os picos chegam a uma vez e meia esse valor. Com teto, o número é o limite superior que o vídeo não ultrapassa, e a taxa média fica em dois terços dele. Em todos os casos o codificador deduz o segundo limite a partir de uma relação fixa entre pico e média de 1,5, por isso o máximo não é definido por um campo próprio. O bitrate total do fluxo será maior por causa das faixas de áudio.
- Resize
Alteração do tamanho da imagem: redução proporcional de 2 ou 4 vezes; conversão para SD — variantes SD, SD PAL e SD NTSC, todas com a relação panorâmica 16:9; escalonamento de SD para HD; definição da largura ou da altura (o outro lado é recalculado proporcionalmente). Tamanho arbitrário não é suportado: ele distorceria as proporções.
- Deinterlace
Conversão de vídeo entrelaçado em progressivo (habilitada por padrão; ao escalonar SD para HD é aplicada automaticamente).
Configurações de qualidade e de estrutura do fluxo (configurações avançadas):
- GOP interval
Intervalo de quadros-chave, em quadros. Por padrão 25, ou seja, um segundo para 25p. Esse intervalo é recomendado se os reprodutores se conectam ao fluxo em um momento arbitrário.
- B-frames, Lookahead
Aumentam a qualidade da codificação; os valores recomendados são 3 e 20–50 quadros, respectivamente.
- Speed preset
Predefinição da velocidade de codificação de 1 a 7; quanto menor o valor, maior a qualidade e maior a carga. Por padrão 4.
- Frame rate resample
Redução da taxa de quadros em 2 ou 4 vezes.
- Encoder PMT PID, PAT/PMT interval (90kHz)
O PID da tabela PMT e o intervalo de repetição das tabelas PAT/PMT no fluxo de saída; são definidos quando é necessário enquadrar o fluxo no plano da rede.
Salvar qualquer configuração do codificador reinicia o processo do transcodificador. Um aviso acima da lista de campos informa sobre isso. O reinício reabre cada entrada que recebe dados dessa instância de transcodificador, inclusive as entradas de outros fluxos: em cada saída transcodificada haverá um corte breve, e um fluxo com entradas de reserva pode, durante esse tempo, passar para a reserva (Redundância de fontes e distribuição).
É possível definir uma combinação incompatível de parâmetros; os erros ficam visíveis no registro do transcodificador (Controle do funcionamento).
Logotipo no quadro¶
A partir da versão 2.0.2.413, é possível sobrepor à imagem do fluxo de saída um logotipo de um arquivo PNG. O logotipo é desenhado pelo backend NVidia (GPU) e, a partir da versão 2.0.2.415, pelo backend de software (CPU); o backend Intel não tem logotipo, e na versão de demonstração esse recurso também não existe. O backend de software precisa do transcodificador de software (pacote tcsw) versão 1.2.0.126 ou mais recente. O nó identifica a versão do transcodificador ao iniciar o serviço; por isso, após atualizar o tcsw, reinicie o serviço e só então defina o logotipo. A configuração é feita na entrada do tipo transcoder do fluxo de resultado, no bloco «Logotipo» após o campo Deinterlace, separadamente para cada codificador: cada variante pode ter seu próprio logotipo com sua própria posição ou não ter nenhum. As variantes sem logotipo não mudam.
O logotipo é desenhado em seu próprio tamanho, sem escala e sem corte: ele deve caber inteiro no quadro da saída. Para uma variante de resolução menor, prepare um logotipo menor.
- Arquivos de logotipo
O botão «Carregar PNG…» envia o arquivo ao nó e já o seleciona no campo «Arquivo do logotipo»; os arquivos carregados antes são escolhidos na lista desse mesmo campo, junto com o tamanho. É aceito qualquer PNG de até 4096×4096 pixels e 16 MB; a transparência é levada em conta. Carregar o mesmo arquivo de novo não cria um novo item. A janela «Arquivos de logotipo…» mostra todos os arquivos do nó com o tamanho e os fluxos que os usam; o botão «Excluir» só aparece nos arquivos não utilizados.
- Posição
«X a partir da borda esquerda (px)» e «Y a partir da borda superior (px)» definem o canto superior esquerdo do logotipo no quadro da saída, ou seja, após a alteração de tamanho. Os dois números devem ser pares.
- Opacidade
«Opacidade (%)» — de 0 a 100, por padrão 100. O valor é multiplicado pela transparência própria do PNG.
- Desfoque do fundo
«Desfoque do fundo (px)» desfoca a imagem sob o logotipo; o número define o raio, de 0 a 50, e 0 — desligado (padrão). «Área de desfoque» escolhe o que desfocar: «Todo o retângulo do logotipo» (padrão) ou «Apenas sob a forma do logotipo», ou seja, sob os pixels não transparentes dele.
O quadro em que o logotipo deve caber resulta da configuração Resize:
sem alteração de tamanho — o quadro da fonte;
SD e SD PAL — 720×576, SD NTSC — 720×480;
SD->HD — 1920×1080, se a altura da fonte não passar de 720; com uma fonte de mais de 720 linhas, o tamanho não muda;
/2 e /4, assim como a largura ou a altura definida — o tamanho recalculado a partir do quadro da fonte. No backend NVidia, a largura é arredondada para cima até um múltiplo de 32, e a altura, até um múltiplo de 4; no backend de software, os dois lados são arredondados para valores pares. Assim, a altura 720 com uma fonte de 1920×1080 dá um quadro de 1280×720 nos dois backends, e a largura 1000, um quadro de 1024×564 no NVidia e de 1000×562 no backend de software.
Por isso, com as mesmas configurações de tamanho, o quadro dos dois backends pode diferir em alguns pixels. A janela e a verificação ao salvar calculam o quadro do backend selecionado.
Abaixo dos campos, a janela informa na hora se o logotipo cabe no quadro e, se não couber, por qual lado e quanto ele ultrapassa a borda. O botão «Pré-visualização» mostra o quadro e o logotipo como retângulos em escala, sem imagem, com números: o tamanho do quadro e de onde ele vem, o tamanho do logotipo, a posição e as distâncias até as bordas direita e inferior. Se o tamanho do quadro depende da fonte e a fonte não está funcionando no momento, a janela informa que o tamanho será conhecido após a inicialização do transcodificador. Nesse caso, a verificação é feita pelo próprio transcodificador ao iniciar: se o logotipo não couber, o transcodificador não inicia e informa um erro com os mesmos números (Controle do funcionamento).
O nó não permite salvar o logotipo se:
o decodificador funciona no modo Video pass-through: o vídeo não é decodificado e não há onde desenhar;
o backend do decodificador é Intel; nesse caso, o bloco «Logotipo» mostra uma dica em vez dos campos;
o backend é de software e o transcodificador de software instalado é anterior ao 1.2.0.126;
as coordenadas são ímpares ou o logotipo não cabe em um quadro de tamanho conhecido.
O backend de um decodificador com logotipo pode ser alternado entre NVidia e software. Se, após a troca, o logotipo não couber no novo quadro, o transcodificador não inicia e informa o tamanho do quadro. Esse decodificador não pode ser alternado para Intel nem para o modo Video pass-through enquanto houver um codificador com logotipo conectado a ele.
Particularidades:
Os arquivos de logotipo ficam armazenados apenas no próprio nó. Eles não entram na cópia de segurança das configurações e não são transmitidos aos vizinhos do Meshwork: para um fluxo transferido para outro nó, o logotipo também precisa ser carregado lá; caso contrário, o transcodificador não inicia.
Qualquer alteração do logotipo, inclusive a escolha de outro arquivo, reinicia o transcodificador, como a alteração das outras configurações do codificador.
Se o logotipo estiver definido em pelo menos um codificador, o transcodificador NVidia marca a cor de todas as suas saídas como BT.709 e converte para ele as fontes SD BT.470-2 e SMPTE 170M, como a configuração Convert to BT.709 do decodificador. As cores visíveis não mudam com isso; uma fonte SD sem marcação de espaço de cores é considerada já BT.709 e não é recalculada. O transcodificador de software emite sempre todas as saídas em BT.709, com ou sem logotipo, por isso o logotipo não afeta a sua cor.
Para uma saída entrelaçada, as linhas horizontais finas do logotipo devem ter pelo menos dois pixels: uma linha de um pixel cintila na frequência dos campos.
Processamento de áudio¶
Por padrão, todas as faixas de áudio passam da entrada para a saída sem recodificação. As faixas supérfluas são removidas pelos filtros de PID na entrada do fluxo (Filtragem MPEG-TS).
A recodificação do áudio é configurada por regras, separadamente para cada codec de origem (configurações avançadas): a faixa pode ser passada sem alterações, recodificada (MPEG — em AAC; AAC — em MPEG Layer II; AC-3 — em MPEG Layer II ou AAC) ou removida (valor Skip). Também são definidos a taxa de bits do áudio (Audio bitrate, por padrão 128 kbps) e o volume da mixagem redutora 5.1 (5.1 downmix volume). Se, após a aplicação das regras, não restar nenhuma faixa de áudio no fluxo de saída, o codificador informará um erro no registro.
PCR e taxa de bits do fluxo de saída¶
O multiplexador do transcodificador forma marcas PCR novas e consistentes. Por padrão, o fluxo de saída é transmitido como VBR: a taxa de bits total varia junto com a taxa de bits real do vídeo e do áudio, e a precisão do PCR conforme a TR 101 290 não é garantida no lado receptor. Se o fluxo transcodificado se destina à difusão DVB, habilite o modo CBR no fluxo receptor: o preenchimento nivelará a taxa de bits e recalculará o PCR (Controle de bitrate). Um modo de codificação variável acentua a irregularidade: o bitrate de vídeo varia junto com o conteúdo e, sem preenchimento no receptor, o fluxo de transporte fica ainda mais irregular.
Controle do funcionamento¶
A tela «Transcodificadores» (Transcodificadores) mostra todas as instâncias. Cada linha descreve uma instância separada (o decodificador e os codificadores conectados a ele): o estado, o tipo de backend, o tempo de funcionamento, a carga de CPU e a memória. A janela «Instância de transcodificador» (Instância de transcodificador) detalha a fonte, a lista de codificadores com os parâmetros do vídeo de saída, os recursos do processo e os registros da execução atual e da anterior. O diagnóstico começa por essa janela. O registro de uma execução encerrada é apagado já na segunda reinicialização do processo; por isso, em caso de falha, ele é copiado imediatamente (Registros do transcodificador).
A carga dos dispositivos GPU é exibida na tela «Monitor do Sistema» (Monitor do Sistema). As ultrapassagens dos limiares de CPU, de memória e de carga da GPU, bem como a indisponibilidade do backend configurado, geram alertas (Catálogo de códigos de alerta).