concat

1. Сводка
Сшивает до 16 исходных пакетов встык в единый непрерывный пакет, чьи дорожки видео, аудио и таймкода читаются как одна неразрывная временная шкала. Лучший результат требует, чтобы входы совпадали по кодеку, растру, частоте кадров и раскладке каналов, тогда достаточно быстрого ремультиплекса; при их различии цепочке ниже по потоку придётся перекодировать.
2. Когда использовать
- Стыкуете пре-ролл, основной материал и пост-ролл в одну поставку — заставки, правовые слейты, рекламные блоки, концовки, сшитые вокруг тела программы.
- Конкатенируете сегментированные источники, чья шкала разбита на несколько файлов, например многочастные записи, новостные верстки или языковые мастеры, объединённые в одну ленту.
- Обрамляете уже закодированный клип брендированными вступительным и финальным сегментами перед тем, как результат ремультиплексируется и загружается.
- Пересобираете собственные предобработанные сегменты процесса обратно в один пакет после того, как каждый обработан параллельно.
3. Входы
A…P—core.Package. До шестнадцати входов-пакетов, названных A–P. Каждый несёт один исходный пакет (аудио, видео, таймкод и любые другие дорожки, которые платформа демультиплексирует) и читается в порядке буквы входа во время выполнения. A — первый сегмент в сшивке; B дописывается за A; C — за B; и так далее. Подключайте только нужные входы; неподключённые пины пропускаются по порядку, но соседние пропуски сбивают читающего — держите используемые пины подряд.Совместимые узлы выше по потоку:
- download — узел-источник, забирающий пакет по URL; типичный питатель каждого сегмента.
Файловые упаковщики (mp4, mov, mxf, ts) и потоковые мультиплексоры (dash, hls3, hls5) также отдают
core.Packageи могут быть повторно поданы на вход concat, когда процессу нужно сшить собственные смультиплексированные сегменты перед финальным мультиплексированием.
4. Выходы
Package—core.Package. Конкатенированный пакет — одна непрерывная видеошкала, одна непрерывная аудиошкала (или по одной на дорожку в источнике) и одна дорожка таймкода, если сегменты несут совместимые таймкод-привязки. Подключите его в цепочку ремаппинга или обратно в мультиплексор для финального контейнера.Совместимые узлы ниже по потоку:
- map/audio — выбирает, какие аудиодорожки конкатенированного пакета идут дальше.
- map/text — выбирает дорожки субтитров для выхода.
- map/timecode — сохраняет стартовый таймкод программы через сшивку.
- map/video — выбирает видеодорожку конкатенированного пакета.
5. Параметры

Форма «Настройки» содержит одно поле помимо общей подписи.
Node Label (
string, по умолчанию пусто)Произвольное имя, отображаемое на плитке узла на холсте.
- Что задаёт. Подпись над плиткой; на сшитый выход не влияет.
- Когда менять. Задавайте, когда в одном графе несколько узлов concat — например, конвейер, который сшивает вступительную последовательность на одном этапе и финальную — на другом, — чтобы каждый был узнаваем с одного взгляда.
6. Пример

Полный разбор — переменные, настройка каждого узла и ожидаемый результат — смотрите в MP4 with branded logo overlay.
7. Где используется
- MP4 with branded logo overlay — сшивает вступительный клип на входе A, брендированный MP4 на B и финальный клип на C в пакет, который питает финальное мультиплексирование.
8. Антипаттерны
- Сшивка сегментов, чьи кодеки, растр, частота кадров или частота сэмплов расходятся. Выход вроде бы валидируется, но шов воспроизводится как сбой — замирание, испорченный GOP или аудио, ресинхронизирующееся после границы. Нормализуйте входы выше по потоку (закодируйте в общий профиль, прогоните vf/scale и af/aresample под общую цель) перед этим узлом.
- Соединение источников с разной расстановкой GOP / IDR. Даже когда кодеры совпадают, шов, попавший внутрь открытого GOP, вынуждает ремультиплекс ниже по потоку выбрасывать кадры или откатываться к полному перекодированию. Настройте кодер выше по потоку на фиксированный интервал ключевых кадров (x264 → Key Interval, эквиваленты на x265 и аппаратных кодерах) и отключите open GOP, когда поставку будут пересегментировать.
- Смешение несогласованных раскладок аудиоканалов между входами. Если один сегмент несёт стерео, а другой 5.1, конкатенация либо отбросит каналы, либо дополнит тишиной более «лёгкую» сторону — ни то, ни другое неприемлемо. Нормализуйте узлом af/stereo или af/join на каждой ветви перед concat.
- Расчёт на непрерывность исходного таймкода между сегментами. Каждый вход несёт своё начало таймкода; сшитый выход сохраняет шкалу только когда цепочка выше по потоку пересчитала входы к общей привязке. В сомнении перепишите таймкод после этого узла через map/timecode.
- Оставленные несмежные пины входа неподключёнными. Подключение пинов A, B, D (с пропуском C) допустимо — платформа читает подключённые входы в порядке букв и игнорирует пропуски, — но холст труднее проверять, а будущий читающий примет пропуск за ошибку. Держите используемые пины подряд начиная с A.