Вещательный мезонин AVC-Intra MXF
1. Что создаёт этот процесс
Четыре видеофайла AVC-Intra 100 в обёртках MXF, в паре с до семью аудиодорожками PCM s16le, нормализованные до 1920×1080 25 кадров/с чересстрочно top-field-first и соотношения сторон при отображении 16:9 с леттербоксом. Набор выходов формируется на этапе выполнения под аудиораскладку источника — немые источники, моно, стерео и многодорожечные оригиналы дают разную аудиоконфигурацию в поставках.
2. Когда использовать
- Нужен мезонин AVC-Intra 100 MXF, пригодный для вещательной передачи, приёма в монтажной или архива.
- Вы принимаете разнородный каталог (немые клипы, моноинтервью, стереопрограммы, многодорожечные записи) и хотите единый процесс, автоматически выдающий правильный MXF под каждый источник.
- Нужно сохранить исходное соотношение сторон полосами леттербокса, а не обрезать или растягивать до 16:9.
- Спецификация доставки требует чересстрочные кадры top-field-first при 25 кадрах/с, 4:2:2 10-битный цвет и несжатое аудио PCM на 48 кГц.
3. Входы
- Исходный файл — любой контейнер и кодек, которые платформа может демультиплексировать, с видеопотоком и от нуля до многих аудиодорожек. Источники со смешанным соотношением сторон обрабатываются этапом леттербокса.
- Переменные:
$In— URL, откуда читается источник. Укажите полный URL, доступный платформе для забора.$Out— URL, куда записывается готовый набор MXF. Под этим назначением размещается до четырёх поставок MXF.
4. Выход
- Файл — контейнер MXF, 1920×1080 при 25 кадрах/с чересстрочно top-field-first, видео AVC-Intra 100 (4:2:2 10-бит), с несжатым аудио PCM s16le на 48 кГц. Точное число записанных файлов MXF зависит от аудиораскладки источника, но каждый вариант разделяет одну и ту же видеоспецификацию.
- Назначение — каждая поставка MXF записывается на URL, заданный переменной
$Out.
5. Обзор процесса

Источник забирается из $In и инспектируется двумя узлами eval, которые читают число его аудиодорожек и число каналов первого аудиопотока. Затем четыре ветви decide делят источник по результату: немой, одноканальный моно, одноканальный стерео или многодорожечный. Каждая ветвь питает независимую цепочку видео и аудио, заканчивающуюся мультиплексированием в MXF и загрузкой. Видеоцепочки разделяют одну форму: выбрать видеопоток, наложить леттербокс до 16:9, масштабировать до 1920×1080, нормализовать в 10-бит 4:2:2, зафиксировать 25 кадров/с, выставить top-field-first и закодировать в AVC-Intra 100. Аудиоцепочки тянут нужные дорожки через map/audio, приводят каждую к 16 бит на 48 кГц и кодируют как PCM s16le; ветвь моно дополнительно использует два узла af/join, чтобы развернуть один моновход в левый/правый пару. Каждая цепочка заканчивается обёрткой MXF и загрузкой на $Out.
6. Настройка по узлам
Audio probe (eval)

Инспектирует исходный пакет и выдаёт токен (NoAudio, OneAudio или MoreAudio), используемый ветвями decide для маршрутизации источника по правильному аудиопути. Второй экземпляр eval читает число каналов первой аудиодорожки, чтобы случай OneAudio можно было разделить на подслучаи моно и стерео.
Параметры этого примера:
- Node Label —
Audio tracks. Идентифицирует этот eval на холсте; второй eval подписанStereo. - Expression —
{% if A.Probe.AudioCount > 0 %}{% if A.Probe.AudioCount == 1 %}OneAudio{% elif A.Probe.AudioCount > 1 %}MoreAudio{% endif %}{% else %}NoAudio{% endif %}. ЧитаетA.Probe.AudioCountи возвращает один из трёх токенов. Вариант Stereo использует{{A.Probe.Audio.0.ChannelCount}}, чтобы выдать число каналов первой дорожки для разделения моно/стерео.
Audio routing (decide)

Маршрутизирует исходный пакет по одному из четырёх аудиопутей на основе выходов eval. Каждый decide объединяет условия через AND и срабатывает, когда совпадают все условия.
Параметры этого примера:
- Node Label —
No Audio. Четыре экземпляра decide подписаныNo Audio,1 Audio Mono,1 Audio Stereoи2 or More Audio. - All conditions must me met —
AND. Все условия должны совпасть для срабатывания ветви. - Condition —
eval-value=NoAudio. Захваченная ветвь срабатывает, когда eval «Audio tracks» выдаётNoAudio. Остальные ветви используют:1 Audio Mono—eval-value = OneAudioANDeval-value = 1(число каналов из eval «Stereo»).1 Audio Stereo—eval-value = OneAudioANDeval-value = 2.2 or More Audio—eval-value = MoreAudio.
Letterboxing (vf/letterbox)

Дополняет кадр источника до соотношения сторон при отображении 16:9 сплошными полосами вместо обрезки или растяжения. Та же конфигурация используется на каждой видеоветви.
Параметры этого примера:
- Aspect Ratio —
16:9. Целевое соотношение сторон при отображении для поставок MXF. - Color —
Black. Цвет полос вокруг кадра источника.
Scale (vf/scale)

Изменяет размер кадра с леттербоксом до растра AVC-Intra 100 1920×1080.
Параметры этого примера:
- Resolution —
1920x1080. Стандартный растр HD, требуемый AVC-Intra 100. - Sample Aspect Ratio (SAR) — выключено. Исходный SAR оставлен нетронутым; соотношение сторон при отображении 16:9 уже даёт этап леттербокса выше.
Полный список параметров и компромиссов см. в Scale.
Pixel Format (vf/format)

Преобразует масштабированный кадр в 10-бит 4:2:2 цветовую раскладку, которую ожидает AVC-Intra 100.
Параметры этого примера:
- Format —
yuv422p10le. 10-бит 4:2:2 планарный Y′CbCr — пиксельный формат, который AVC-Intra 100 кодирует нативно.
FPS (vf/fps)

Приводит видео к фиксированной частоте кадров перед кодером.
Параметры этого примера:
- Frame Rate —
25/1. 25 кадров в секунду; базовая частота европейского вещания для мезонинов AVC-Intra 100.
Field Order (vf/fieldorder)

Помечает поток как чересстрочный top-field-first, что является преобладающим чересстрочным порядком в европейском вещании.
Параметры этого примера:
- Field Order —
tff. Чересстрочная раскладка top-field-first.
AVC-Intra (avcintra)

Кодирует подготовленное видео в AVC-Intra. Класс 100 нацелен на 100-Мбит/с intra-only профиль, широко используемый как вещательный мезонин.
Параметры этого примера:
- Class —
100. Класс 100 Мбит/с AVC-Intra 100 — intra-only H.264 на 4:2:2 10-бит. - Flavor —
Auto. Позволяет кодеру выбрать правильную разновидность под заданные размер кадра и частоту.
Sample Format (af/aformat)

Преобразует формат сэмплов аудио перед пересэмплером и кодером PCM.
Параметры этого примера:
- Format —
s16. 16-битные знаковые целочисленные сэмплы — то, чтоpcm_s16leожидает на входе.
Sample Rate (af/aresample)

Пересэмплирует аудио к фиксированной частоте, чтобы каждый кодер PCM видел известный вход независимо от источника.
Параметры этого примера:
- Rate —
48000Hz. Стандартная вещательная частота дискретизации; та же, что в спецификации мезонина AVC-Intra MXF.
Join (af/join)

Разворачивает один моновход в стереопару на ветви 1 Audio Mono. Один af/join питает левый канал, другой — правый; оба нацелены на тот же моновход.
Параметры этого примера:
- Layout —
mono. Поканальное объединение, один af/join на выходной канал. - Target FC — Package
pin A, Stream#0, ChannelFL. Отображает исходный моносигнал на левый канал. - Параметры (вариант B): второй af/join на той же ветви идентичен, кроме Channel —
FR— так что тот же моновход заполняет и правый канал, давая центрированную дуал-моно пару.
PCM (pcm)

Кодирует каждую аудиодорожку для обёртки MXF. По четырём ветвям работает до семи кодеров pcm.
Параметры этого примера:
- Codec —
pcm_s16le. Несжатый 16-битный little-endian PCM; аудионоситель, ожидаемый внутри мезонина AVC-Intra MXF.
MXF (mxf)

Мультиплексирует закодированные видео- и аудиопотоки в файл MXF. Работают четыре экземпляра mxf, по одному на ветвь аудиораскладки, и каждый выдаёт независимый пакет в upload.
Параметры этого примера:
- Filename — пусто. Мультиплексор MXF выводит имя файла из контекста выше по потоку.
7. Запуск
- Откройте Процессы → Создать и либо соберите граф выше, либо импортируйте шаблон AVC-Intra MXF.
- Задайте
$Inравным URL источника, а$Out— URL назначения, куда должны попасть поставки MXF. - Нажмите Запустить либо привяжите процесс к папке мониторинга для автоматической обработки.
- Отслеживайте ход на странице Задачи; готовые файлы MXF появятся под URL, заданным в
$Out.
8. Варианты
- Измените Class на AVC-Intra на
50для AVC-Intra 50 — вдвое меньший видеобитрейт ценой запаса по сжатию. - Замените узел vf/letterbox узлом vf/crop, когда спецификация доставки требует центральной обрезки вместо дополнения полосами.
- Переключите Field Order на vf/fieldorder на
bffдля доставки bottom-field-first или наprogressiveдля прогрессивного выхода. - Скорректируйте условие eval «Stereo» (
{{A.Probe.Audio.0.ChannelCount}}), если специфичной для источника раскладке каналов нужна своя ветвь.