af/aformat

1. Сводка
Приводит аудиопоток к заданному формату сэмплов до того, как он дойдёт до кодера ниже по потоку. Фильтр нормализует разрядность, знаковость сэмплов и планарную/чередующуюся раскладку, чтобы следующая стадия получила аудио ровно в той форме, какую она ожидает.
2. Когда использовать
- Состыковываете источник, чей формат сэмплов не совпадает с тем, что принимает кодер ниже по потоку, — например подаёте 32-битный float-мастер в кодер AC-3 или AAC, которому нужны знаковые целочисленные сэмплы.
- Нормализуете разрядность в архивном конвейере, где каждое кодирование должно потреблять один и тот же мастер s24 независимо от вариаций входа.
- Фиксируете формат аудио внутри вещательной контрибуционной цепочки, где PCM с фиксированной разрядностью входит в требования поставки.
- Ставите перед стадией aresample / join / stereo, чтобы гарантировать формат, с которого начинает следующий фильтр.
3. Входы
Audio—[]filtergraph.AudioTransform. Один аудиопоток или цепочка фильтров.Совместимые узлы выше по потоку:
- af/aresample — пересэмплирует аудио к целевой частоте дискретизации.
- af/join — объединяет несколько аудиопотоков в один.
- af/stereo — приводит аудио к стерео или фиксирует стереораскладку.
- map/audio — выбирает, какие аудиопотоки источника идут на кодер.
4. Выходы
Audio—[]filtergraph.AudioTransform. Переформатированный аудиопоток, готовый питать следующий фильтр или кодер.Совместимые узлы ниже по потоку:
- aac — кодирует аудиодорожки кодеком AAC.
- ac3 — кодирует аудиодорожки как Dolby Digital (AC-3).
- af/aresample — пересэмплирует аудио к целевой частоте дискретизации.
- af/stereo — приводит аудио к стерео или фиксирует стереораскладку.
- eac3 — кодирует аудио через Dolby Digital Plus (E-AC-3).
- pcm — записывает несжатое аудио PCM.
5. Параметры

Форма «Настройки» — один столбец с одним полем. Описано в порядке следования в форме.
Format (
enum, по умолчаниюs16)Целевой формат сэмплов выходного потока.
- Что задаёт. Числовое представление каждого аудиосэмпла в потоке,
покидающем этот узел.
s16записывает 16-битные знаковые целочисленные сэмплы,s24— 24-битные знаковые,s32— 32-битные знаковые, аfltp— 32-битные сэмплы с плавающей точкой в планарной раскладке. - Когда менять. Выбирайте
s16для обычного аудио в вебе и HLS, где 16-битного мастера достаточно, а кодеры ниже по потоку ожидают знаковые целые. Переходите наs24для интермедиатов высокого разрешения и мезонинов PCM, сохраняющих более широкий динамический диапазон. Выбирайтеs32только когда требования поставки предписывают 32-битные целочисленные сэмплы. Переключайтесь наfltp, когда следующий фильтр включает стадию, предпочитающую планарный float-вход — обычно многоступенчатый процессор громкости или DRC. - Допустимые значения.
s16,s24,s32,fltp. - Обязательно. да.
- Что задаёт. Числовое представление каждого аудиосэмпла в потоке,
покидающем этот узел.
6. Пример

Полный разбор — переменные, настройка каждого узла и ожидаемый результат — смотрите в HEVC.
7. Где используется
- HEVC — фиксирует аудиотракт на заданном формате сэмплов перед кодированием AAC, идущим в пару к видео HEVC.
- AVC-Intra MXF broadcast mezzanine — фиксирует объединённые сэмплы PCM на одном формате перед мультиплексом вещательного MXF.
- MPEG-TS broadcast pre-encode — нормализует формат сэмплов аудио перед кодированием AAC в режиме CBR, делящим муксрейт 10000 кбит/с.
- Cropped H.264 MP4 from interlaced source — приводит к единому формату перед стереокодированием AAC в пару к обрезанному, деинтерлейснутому видео H.264.
- Three-tier MP4 ladder (LQ / MQ / HQ) — фиксирует общую аудиоцепочку на одном формате сэмплов перед единственным кодированием AAC, питающим все три уровня MP4.
8. Антипаттерны
- Принуждение к формату, который источник не обеспечивает. Выбор
s24, когда граф выше по потоку несёт только 16-битный материал, даёт сэмплы, дополненные нулями — лишние биты без сигнала. Либо держитеs16сквозным, либо исправляйте формат источника выше по потоку. - Перепутанный порядок aformat и aresample. Пересэмплирование до смены формата нормально; обратный порядок платит за конверсию дважды, когда ресэмплер внутренне переходит обратно к своему рабочему формату. Ставьте af/aresample выше по потоку, а aformat — ниже, когда нужны оба.
- Использование aformat для скрытой смены раскладки каналов. Этот узел управляет только форматом сэмплов. Смены раскладки каналов — моно ↔ стерео, сборка микса 5.1 — относятся к af/stereo и af/join. Подключение aformat как преобразователя раскладки не даст ожидаемой раскладки.
- Повторное применение aformat после каждого фильтра. Когда аудио уже в целевом формате и ни один последующий фильтр его не переписывает, дополнительные стадии aformat не дают пользы и добавляют ещё один проход декодирования/кодирования. Ставьте aformat последним аудиофильтром перед кодером, когда он вообще нужен.