dash

1. Сводка
Упаковывает закодированные аудио, видео и необязательные дорожки субтитров в манифест MPEG-DASH с сопутствующими файлами сегментов. Результат — поток с адаптивным битрейтом, который плееры забирают по обычному HTTP, с переключением качества по измерению полосы на стороне клиента.
2. Когда использовать
- Готовите манифест DASH для доставки в браузеры и OTT рядом с HLS или вместо него.
- Собираете адаптивную лестницу, где несколько закодированных видеоступеней делят общий аудиорендерий и манифест.
- Добавляете сайдкар-субтитры в адаптивную поставку через контакт Text.
- Генерируете дружественный к CDN выход DASH в пару к HLS для кроссплатформенного покрытия.
3. Входы
Video—[]core.VideoTrack. Один или несколько закодированных видеорендериев для включения в манифест как ступени адаптационного набора. Обязателен.Совместимые узлы выше по потоку:
- avcintra — кодирует интра-only H.264 (AVC-Intra) для вещательных поставок.
- ni264 — аппаратно-ускоренный кодер H.264 на картах NetInt.
- qsv264 — аппаратно-ускоренный кодер H.264 через Intel Quick Sync.
- x264 — программный кодер H.264/AVC (libx264).
- x265 — программный кодер H.265/HEVC (libx265).
- copy — пропускает исходную видеодорожку без изменений.
Audio—[]core.AudioTrack. Одна или несколько закодированных аудиодорожек. Обязателен.Совместимые узлы выше по потоку:
Text—[]core.TextTrack. Необязательные дорожки субтитров для включения в манифест как сайдкар-набор адаптации.Совместимые узлы выше по потоку:
4. Выходы
Package—core.Package. Манифест DASH (.mpd) плюс файлы сегментов, поддерживающие его представления, готовые к публикации в CDN или хранилище.Совместимые узлы ниже по потоку:
5. Параметры

Форма «Настройки» — один столбец с тремя полями. Описаны в порядке следования в форме.
Node Label (
string, по умолчанию пусто)Произвольное имя, отображаемое на плитке узла на холсте.
- Что задаёт. Подпись над плиткой; на манифест не влияет.
- Когда менять. Задавайте, когда в одном графе несколько упаковщиков — например, ветвь DASH рядом с HLS v3 и HLS v5, — чтобы каждый выход был узнаваем с одного взгляда.
Output Filename (
string, по умолчанию пусто; необязательно)Имя файла манифеста верхнего уровня.
- Что задаёт. Имя файла, записываемое под выходным URL процесса, плюс префикс каталога, под которым размещаются сегменты, когда значение содержит компонент каталога.
- Когда менять. Задавайте, чтобы держать манифесты соседних упаковщиков в
разных каталогах — например,
dash/index.mpdрядом сhls/index.m3u8в одном выходном бакете. Оставляйте пустым для значения платформы по умолчанию. - Переменные. поддерживает
$variables.
Fragment Duration (
int, секунды, обязательно)Целевая длина сегмента в секундах.
- Что задаёт. Как часто упаковщик закрывает текущий медиасегмент и пишет
следующий; записи
SegmentTemplateв манифесте размечаются под это значение. - Когда менять. Более короткие фрагменты режут задержку и улучшают отзывчивость переключения битрейта ценой более высоких накладных расходов на запросы; более длинные дружественнее к кэшированию CDN и длинному VOD. Подгоняйте значение под ритм, который ожидает принимающий плеер, и держите его согласованным по рендериям, делящим манифест.
- Обязательно. да.
- Что задаёт. Как часто упаковщик закрывает текущий медиасегмент и пишет
следующий; записи
Соответствие JSON-ключей и названий полей
JSON-ключи opt, которые встречаются в файлах процессов, соответствуют
названиям полей формы так:
| JSON-ключ | Название поля |
|---|---|
name |
Output Filename |
fragdur |
Fragment Duration |
6. Пример

Полный разбор — переменные, настройка каждого узла и ожидаемый результат — смотрите в Adaptive streaming with HLS, DASH and captions.
7. Где используется
- Adaptive streaming with HLS, DASH and captions — выдаёт манифест MPEG-DASH рядом с выходами HLS v3 и HLS v5, с дорожкой субтитров WebVTT, сгенерированной whisper и связанной через контакт Text.
8. Антипаттерны
- Несовпадение длительности фрагмента между рендериями. Когда соседние кодеры, питающие один манифест, выдают разный ритм GOP, упаковщик не может выровнять границы фрагментов, и плеер застревает на каждом переключении. Задавайте у каждого кодера-участника Key Interval кратным Fragment Duration перед их подключением.
- Поставка несовместимых профилей кодека в одном наборе адаптации. Смешение, например, рендерия H.264 High с рендерием H.264 Baseline в одном наборе адаптации Video сломает декодеры, не умеющие переходить между профилями. Держите профиль, разрядность и субдискретизацию цветности согласованными по ступеням, которые манифест объявляет переключаемыми.
- Восприятие DASH как единственного нужного манифеста. Устройства Apple по-прежнему требуют HLS для нативного воспроизведения. Спаривайте DASH с выходом HLS (hls5 или hls3), когда аудитория включает iOS, tvOS или Safari.
9. Заметки
- Упаковщик снимает отпечаток входных потоков для построения идентификаторов представлений; переименование питающего кодера в середине задачи даст новый манифест при следующем прогоне, а не обновит предыдущий на месте.
- Субтитры, приходящие на контакт Text, выставляются в манифесте как отдельный набор адаптации; сами файлы сегментов остаются WebVTT, если только конвейер-источник не перекодирует их выше по потоку.