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.
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
samecom 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.