Приём MXL¶
MXL (Media eXchange Layer) — это обменный слой архитектуры DMF (Dynamic Media Facility): соседние медиафункции — декодеры, микшеры, CG — пишут несжатое медиа в общий каталог, а потребители забирают его оттуда без сети и без копий. Mcaster читает такой каталог как обычный источник стрима: дорожки приходят в тракт, перекодируются и уходят на выдачу теми же средствами, что сигнал со спутника или из SRT.
Как и у ST 2110, вход несёт несжатое медиа, но транспорт другой — не мультикаст по IP-сети, а файлы в каталоге на общей машине. Сетевая подготовка не нужна вовсе: нужна папка, в которую пишет издатель.
Что такое домен и флоу¶
Каталог, в который пишут медиафункции, называется доменом. Внутри него каждая логическая дорожка — свой подкаталог-флоу с именем-UUID: 5fbec3b1-….mxl-flow. Флоу несёт описание себя (flow_def.json — формат NMOS), заголовок с состоянием писателя и слоты с данными; читатель опрашивает заголовок и забирает наросшие кадры. Писателей и читателей в одном домене может быть сколько угодно, и друг о друге они не догадываются.
Один домен несёт одну программу: видеофлоу там один, звуковых может быть несколько. Вход берёт первый найденный видеофлоу и первый звуковой; выбирать флоу по имени в текущей версии нельзя.
Читаются два медиатипа:
video/v210— несжатое видео 10 бит 4:2:2 в упаковке v210; размер и частота кадров берутся из описания флоу.audio/float32— несжатый звук с плавающей запятой, плоскость на канал.
Прочие форматы — видео с альфа-каналом (video/v210a), вспомогательные данные ANC — пропускаются с записью в журнал: их раскладка пока не читается.
Настройка входа¶
Создайте стрим и на вкладке Источники нажмите + Добавить источник. Протокол — MXL.

У входа два поля:
- Домен MXL — путь к каталогу домена на машине стримера, например
/dev/shm/mxl. Это локальный каталог, а не сетевой адрес: стример и писатели обязаны видеть одну и ту же папку. - Таймаут пира (мс) — сколько ждать новых кадров, прежде чем признать источник мёртвым. По умолчанию 30 секунд.
Несжатые дорожки не сегментируются сами по себе: как и для 2110 и SDI, планируйте транскодер — выход в H.264/AAC для отдачи OTT, либо RAW-выход для SDI.
Способность лицензируется¶
Приём MXL продаётся позицией media_ingest сетки тарифов и гасится лицензией, а не сборкой: секция входа есть у любой установки, но без этой способности в лицензии поля неактивны и подсвечены пояснением. Число mxl-входов считается по конфигурации — по одному на каждый стрим с таким входом.
Как вход ведёт себя в работе¶
- Живой край. Кольцо слотов конечно, и отставший читатель теряет старые кадры: вход прыгает на свежие и продолжает, а разрыв виден по скачку меток времени. Это не ошибка — живой эфир дороже непрерывности.
- Испорченные кадры пропускаются. Писатель может пометить кадр недействительным или не дописать его; такой кадр не становится дорожкой в стриме, вход просто идёт дальше.
- Молчание писателя закрывается таймаутом пира: вход получает ошибку, стрим уходит на рестарт по общим правилам — тем же, что у всех источников.
Проверить приём без аппаратуры¶
Для MXL не нужна ни карта, ни медиасеть: демо-издатель есть в открытом SDK. Склонируйте dmf-mxl/mxl и соберите инструменты по инструкции из его docs/Building.md — понадобится mxl-gst-testsrc; готовые описания тестовых флоу лежат в examples/flow-configs/ того же репозитория. Пошаговое знакомство с MXL целиком — воркшоп mxl-hands-on.
Издатель пишет в домен тестовую программу — SMPTE-бары с тикающими часами и стерео-тон:
mkdir -p /dev/shm/mxl
mxl-gst-testsrc -d /dev/shm/mxl \
-v examples/flow-configs/flow-video-v210.json \
-a examples/flow-configs/flow-audio.json
Каталог домена должен быть виден и издателю, и машине с Mcaster: на одной машине это общий путь, между контейнерами — смонтированный том.
Что вы увидите в Mcaster:
- Создайте стрим, на вкладке Источники нажмите + Добавить источник и выберите протокол MXL. В поле Домен MXL укажите путь —
/dev/shm/mxl— и сохраните стрим. - Как только вход открылся, в карточке стрима появляется блок входящих дорожек:
v2101920×1080 иfltp48 кГц — приём пошёл. - Включите транскодер (H.264/AAC): рядом появится блок выходных дорожек, и стрим откроется по HLS любым плеером — бары, идущие часы, звук.
