Skip to content

SAR и анаморфное видео

media.transcode.sar

Что определяет SAR

Sample Aspect Ratio (SAR) — отношение ширины отсчёта изображения к его высоте. При SAR 1:1 пиксели квадратные; при другом отношении видео анаморфное. Плеер учитывает SAR при показе.

  • Растр — размер закодированного кадра, например 720×576.
  • SAR — форма пикселя, например 64:45.
  • DAR — пропорции изображения на экране: (ширина растра / высота растра) × SAR.

Например, 720×576 с SAR 64:45 отображается как 1024×576 (16:9). SAR 16:11 для того же растра даёт ширину около 1048: это другое соглашение об активной области PAL. Эти дроби не взаимозаменяемы.

Как SAR взаимодействует с изменением размера

Входной SAR описывает источник. Стратегия resize определяет, как вписать, обрезать или растянуть изображение. Явный выходной SAR определяет растр для полученного экранного размера. Изменение только SAR сохраняет экранные пропорции и пересчитывает растр; это перекодирование, а не исправление метаданных без обработки изображения.

Для источника 720×576 с SAR 64:45 и H.264:

Ресайз Выходной SAR Растр Экранный размер
Нет Автоматически 720×576 1024×576
Нет 1:1 1024×576 1024×576
Нет 16:11 704×576 1024×576
Fit, высота 360 Автоматически 450×360 640×360
Fit, высота 360 1:1 640×360 640×360
Fit, высота 360 4:3 480×360 640×360

Погрешность до нескольких пикселей возможна из-за округления растра до чётных размеров. При SAR меньше единицы Sapsan уменьшает высоту растра вместо увеличения ширины.

При явном SAR ширина и высота resize описывают экранную рамку:

  • Fit — сохраняет всё изображение и при необходимости добавляет поля.
  • Crop — обрезает по центру.
  • Scale — растягивает до рамки.

Например, Scale 640×480 с SAR 4:3 даёт растр 480×480 и показ 640×480: вход 16:9 растянется до 4:3.

В режиме Auto H.264/HEVC без resize, с Fit или Crop сохраняют входной SAR. У Scale размеры задают растр: для анаморфного источника SAR пересчитывается с сохранением DAR; для квадратного входа остаётся 1:1 и возможно растяжение. Поэтому переключение Auto на явный SAR при том же Scale может изменить результат.

Настройка и проверка

В консоли Mcaster откройте качество транскодера, нажмите Ещё и задайте Форма пикселя (SAR). Подробные шаги и снимки — в инструкции Mcaster.

Настоящее качество H.264: SAR 16:11, без resize; источник 720×576, SAR 64:45, выход 704×576, SAR 16:11.

Настоящее качество H.264: SAR 16:11, без resize; источник 720×576, SAR 64:45, выход 704×576, SAR 16:11.

В API настройка задаётся полем transcoder.output[].params.video.sar:

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

Отсутствие поля означает Auto; явное 1:1 задаёт квадратные пиксели. Для возврата в Auto удалите поле; при JSON Merge Patch передайте sar: null. Компоненты дроби — целые числа от 1 до 65535.

Массив transcoder.output при PATCH заменяется целиком: передавайте все его качества, включая остальные параметры; адресовать элемент массива отдельным патчем нельзя.

В статистике дорожки width и height описывают размер отображения, pixel_width и pixel_height — растр, sar_width и sar_height — SAR. Совпадающий с экранным растр и единичный SAR могут быть опущены: тогда используются экранные размеры и 1:1. Предпросмотр лестницы в консоли показывает экранные размеры и заданный SAR, а не фактически закодированный растр.

Ограничения и учёт использования

  • Перекодирование — явный SAR требует выходного кодека; проброс same с SAR отклоняется.
  • AV1 и JPEG 2000 — допускают Auto или квадратный SAR.
  • MPEG-2 — допускает только SAR, представимый через поддерживаемый DAR при выбранном растре.

Также отклоняется дробь, при которой сторона растра становится меньше двух пикселей.

Позиция media.transcode.sar учитывается по стримам: хотя бы одно качество с явным SAR, включая 1:1, даёт одну единицу. Несколько качеств не увеличивают число. Auto и входной анаморф без явной настройки не учитываются. Телеметрия передаёт текущее число как usage.media_transcode_sar; ноль опускается. Это отдельная позиция от кодирования видео media.transcode.video.