Skip to content

SAR e vídeo anamórfico

media.transcode.sar

O que o SAR descreve

Sample Aspect Ratio (SAR) é a razão entre a largura e a altura de uma amostra de imagem. SAR 1:1 indica pixels quadrados; qualquer outra razão indica vídeo anamórfico. O reprodutor usa o SAR para exibir a imagem.

  • Raster — dimensões do quadro codificado, por exemplo 720×576.
  • SAR — formato do pixel, por exemplo 64:45.
  • DAR — proporção da imagem exibida: (largura do raster / altura do raster) × SAR.

Por exemplo, 720×576 com SAR 64:45 é exibido como 1024×576 (16:9). SAR 16:11 no mesmo raster resulta em largura de aproximadamente 1048: segue outra convenção de área ativa PAL. Essas razões não são intercambiáveis.

Interação entre SAR e redimensionamento

O SAR de entrada descreve a fonte. A estratégia de redimensionamento determina como ajustar, cortar ou esticar a imagem. O SAR de saída explícito determina o raster para as dimensões de exibição resultantes. Alterar apenas o SAR preserva as proporções de exibição e reamostra o raster; exige transcodificação, e não apenas alterar metadados.

Para uma fonte de 720×576 com SAR 64:45 e H.264:

Redimensionamento SAR de saída Raster Dimensões de exibição
Nenhum Automático 720×576 1024×576
Nenhum 1:1 1024×576 1024×576
Nenhum 16:11 704×576 1024×576
Fit, altura 360 Automático 450×360 640×360
Fit, altura 360 1:1 640×360 640×360
Fit, altura 360 4:3 480×360 640×360

O arredondamento do raster para dimensões pares pode introduzir uma diferença de alguns pixels. Com SAR inferior a um, o Sapsan reduz a altura do raster em vez de aumentar a largura.

Com SAR explícito, largura e altura de resize definem a área de exibição:

  • Fit preserva toda a imagem e adiciona barras quando necessário.
  • Crop corta pelo centro.
  • Scale estica até preencher a área.

Por exemplo, Scale 640×480 com SAR 4:3 produz um raster de 480×480 exibido a 640×480: uma entrada 16:9 é esticada para 4:3.

No modo Automático, H.264/HEVC sem redimensionamento, com Fit ou com Crop preservam o SAR de entrada. Em Scale, as dimensões definem o raster: para uma entrada anamórfica, o SAR é recalculado para preservar o DAR; para uma entrada de pixels quadrados, permanece em 1:1 e pode ocorrer distorção. Portanto, mudar de Automático para SAR explícito com as mesmas dimensões Scale pode alterar o resultado.

Configuração e verificação

Na console Mcaster, abra uma qualidade do transcodificador, clique em Mais e ajuste Forma do pixel (SAR). Veja as etapas e capturas no guia do Mcaster.

Qualidade H.264 real: SAR 16:11, sem redimensionamento; fonte 720×576, SAR 64:45, saída 704×576, SAR 16:11.

Qualidade H.264 real: SAR 16:11, sem redimensionamento; fonte 720×576, SAR 64:45, saída 704×576, SAR 16:11.

O ajuste da API é transcoder.output[].params.video.sar:

{"sar": {"width": 16, "height": 11}}

A ausência do campo significa Automático; 1:1 explícito solicita pixels quadrados. Remova o campo para voltar a Automático; envie sar: null com JSON Merge Patch. Cada componente deve ser um inteiro de 1 a 65535.

PATCH substitui todo o array transcoder.output: envie todas as qualidades preservando os demais ajustes; não é possível alterar elementos do array por índice.

Nas estatísticas da faixa, width e height descrevem as dimensões de exibição, pixel_width e pixel_height o raster, e sar_width e sar_height o SAR. Quando o raster coincide com a exibição e o SAR é unitário, esses campos podem ser omitidos: use as dimensões de exibição e 1:1. A prévia da console mostra dimensões de exibição e SAR configurado, não o raster codificado real.

Restrições e contabilização do uso

  • Transcodificação — o SAR explícito exige um codec de saída; o repasse same com SAR é rejeitado.
  • AV1 e JPEG 2000 — aceitam Automático ou SAR quadrado.
  • MPEG-2 — exige SAR representável por um DAR compatível com o raster selecionado.

Também é rejeitada uma razão que reduza um lado do raster para menos de dois pixels.

A função media.transcode.sar é contabilizada por stream: pelo menos uma qualidade com SAR explícito, incluindo 1:1, conta como uma unidade. Mais qualidades não aumentam o número. Automático e entrada anamórfica sem ajuste explícito ficam excluídos. A telemetria envia o número atual como usage.media_transcode_sar; o zero é omitido. É uma função separada da codificação de vídeo media.transcode.video.