af/join

1. Сводка
Объединяет несколько моно- или стереопотоков аудио в один многоканальный поток. Выходная раскладка каналов (моно, стерео, 5.1, 7.1) определяет, сколько входных контактов выставляет узел и какой канал заполняет каждый контакт в итоговой раскладке. Берите его, когда источник поставляет объёмный микс отдельными дорожками, а поставка ожидает один многоканальный поток.
2. Когда использовать
- Собираете дорожку объёмного звука 5.1 из шести мономоносов (FL, FR, FC, LFE, BL, BR) перед кодированием AC-3 или E-AC-3.
- Сводите разделённые языковые стемы — диалог, музыку и эффекты, записанные отдельными монодорожками, — в одну стереопрограмму.
- Повышаете моноисточник до стереораскладки, дублируя одно содержимое в оба канала перед кодером, работающим только со стерео.
- Готовите раскладку 7.1, требуемую иммерсивной поставкой, когда источник несёт восемь дискретных моноканалов.
3. Входы
Число входных контактов меняется с выбранной раскладкой Layout. Каждый контакт подписан целевым каналом, который он питает (FL, FR, FC, LFE, BL, BR для 5.1; FL, FR для стерео; один контакт для моно). Подключите источник аудио выше по потоку, который должен заполнить каждый слот канала.
<channel>—filtergraph.AudioTransform. Один аудиопоток на каждый канал в выбранной раскладке.Совместимые узлы выше по потоку:
- map/audio — выбирает, какой аудиопоток источника идёт в каждый слот канала.
4. Выходы
Audio—filtergraph.AudioTransform. Объединённый многоканальный аудиопоток, готовый питать кодер или другой фильтр.Совместимые узлы ниже по потоку:
- aac — кодирует аудиодорожки кодеком AAC.
- ac3 — кодирует аудиодорожки как Dolby Digital (AC-3) — каноническая цель объёмного звука для схемы «6 моно → 5.1».
- af/aformat — приводит аудио к заданному формату сэмплов.
- af/aresample — пересэмплирует аудио к целевой частоте дискретизации.
- af/stereo — приводит аудио к стерео или фиксирует стереораскладку.
- eac3 — кодирует аудио через Dolby Digital Plus (E-AC-3).
- pcm — записывает несжатое аудио PCM — каноническая цель для мезонинов PCM, собранных из объединённых стемов.
5. Параметры

Форма «Настройки» имеет шапку, за которой следует поканальная матрица. Матрица растёт или сжимается с выбранной раскладкой Layout.
Node Label (
string, по умолчанию пусто)Произвольное имя, отображаемое на плитке узла на холсте.
- Что задаёт. Подпись над плиткой; на аудио не влияет.
- Когда менять. Задавайте, когда в одном графе несколько узлов af/join (например, параллельная стереопрограмма и рендеринг 5.1), чтобы каждый был узнаваем с одного взгляда.
Layout (
enum, по умолчаниюmono)Выходная раскладка каналов.
- Что задаёт. Число и идентичность каналов в объединённом потоке. Выбор определяет, сколько входных контактов узел выставляет на холсте и какие слоты каналов появляются в поканальной матрице ниже.
- Когда менять. Выбирайте
mono, чтобы свести один источник в единый канал;stereo— для пары FL/FR из двух мономоносов или для стереопрограммы из миксов «диалог + музыка + эффекты»;5.1— для канонической цели FL/FR/FC/LFE/BL/BR перед кодированием AC-3;5.1(side)— когда требования предписывают боковое размещение SL/SR вместо тыловых;7.1— для иммерсивных целей объёмного звука. - Допустимые значения.
mono,stereo,5.1,5.1(side),7.1. - Обязательно. да.
Поканальное сопоставление (матрица Target / Source)
Каждая строка матрицы — один выходной канал в выбранной раскладке. Столбец Target называет слот канала (FL, FR, FC, LFE, BL, BR для 5.1). Три входных поля на стороне Source указывают, откуда берутся сэмплы этого канала.
Package (
enum)- Что задаёт. Какой входной контакт этого узла af/join питает выбранный канал. Список перечисляет контакты, выставленные текущей раскладкой (по одной записи на подключение выше по потоку).
- Когда менять. Выбирайте контакт, подключённый к тому стему-источнику, который должен попасть в этот канал — например, выберите контакт, подключённый к стему BL, в строке BL, а не в строке FL, чтобы не получить переставленное поле объёмного звука.
- Обязательно. да.
Stream# (
int, по умолчанию0)- Что задаёт. Индекс аудиопотока внутри выбранного пакета — полезно, когда контакт выше по потоку несёт более одного аудиопотока (типично для map/audio, питаемого многодорожечным источником).
- Когда менять. Оставляйте
0, когда контакт выше по потоку несёт один аудиопоток. Переходите на1,2, …, когда у источника несколько аудиодорожек и только одна из них должна питать этот канал.
Channel (
enum)- Что задаёт. Какой канал внутри потока-источника направляется в целевой слот.
- Когда менять. Задавайте имя исходного канала (например,
FC, когда контакт-источник несёт центральную монодорожку), чтобы выходной канал получал аудио из соответствующего исходного канала. Для сборок «6 моно → 5.1» каждая строка использует единственный канал контакта-источника, и поле остаётся на сопоставлении по умолчанию.
6. Пример

Полный разбор — переменные, настройка каждого узла и ожидаемый результат — смотрите в 5.1 surround AC-3 MP4.
7. Где используется
- 5.1 surround AC-3 MP4 — объединяет шесть моноисточников в раскладку FL/FR/FC/LFE/BL/BR, питающую кодирование AC-3 5.1.
- AVC-Intra MXF broadcast mezzanine — объединяет отдельные моностемы в стереораскладку перед мезонином PCM в вещательном MXF.
8. Антипаттерны
- Слоты каналов подключены не к тому контакту. Постановка стема BL на слот BR (или любое другое сдвинутое сопоставление в матрице) даёт поставку, которая декодируется без предупреждения, но с развёрнутым полем объёмного звука. Проверяйте матрицу Target → Source перед публикацией — читайте каждую строку и убеждайтесь, что стем-источник и целевой канал — одна и та же буквенная пара.
- Объединение дорожек на разных частотах дискретизации. Все входные контакты должны совпадать по частоте; смешанные частоты вызывают тихий дрейф или отказ при кодировании. Ставьте af/aresample на каждую ветвь выше по потоку перед этим узлом, чтобы каждый контакт входил на одной частоте.
- Несоответствие раскладки и числа каналов источника. Выбор
5.1при подключённых лишь четырёх контактах выше по потоку даёт тишину в несопоставленных слотах. Выбирайте раскладку под число стемов-источников или осознанно подключайте тихие стемы в пропуски. - Пропуск проверки громкости ниже по потоку. Объединение стемов складывает их громкость так, что может обрезать пик программы или сместить воспринимаемую громкость. Проверяйте против целевой громкости поставки после этого узла — стандартная схема ставит шаг измерения перед кодированием.