hls5

1. Сводка
Упаковывает закодированные аудио, видео и необязательные дорожки субтитров в плейлист HLS v5 на основе фрагментированного MP4 (fMP4). Поддерживает современные кодеки, сайдкар-наборы адаптации субтитров и более богатый словарь тегов, появившийся после HLS v3 — правильный вариант по умолчанию для современного воспроизведения на Apple, Android и в браузерах.
2. Когда использовать
- Готовите основную поставку HLS для современных плееров iOS, tvOS, Android и HTML5.
- Упаковываете лестницу HEVC в HLS — нужен v5 / fMP4, поскольку v3 не несёт HEVC.
- Доставляете субтитры через контакт Text как сайдкар-группу, а не вжигаете их в битовый поток видео.
- Спариваете с DASH, чтобы покрыть и Apple-нативные, и дружественные к CMAF приёмники из одного набора исходных файлов.
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. Мастер-плейлист HLS v5 (.m3u8) плюс файлы сегментов fMP4, поддерживающие его варианты, готовые к публикации в CDN или хранилище.Совместимые узлы ниже по потоку:
5. Параметры

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

Полный разбор — переменные, настройка каждого узла и ожидаемый результат — смотрите в Adaptive streaming with HLS, DASH and captions.
7. Где используется
- Adaptive streaming with HLS, DASH and captions — упаковывает рендерий H.264 от x264 с закодированным аудио AAC и связывает дорожку субтитров WebVTT, сгенерированную whisper, через контакт Text.
8. Антипаттерны
- Допущение, что любой устаревший приёмник принимает fMP4. Небольшая доля старых умных телевизоров и очень ранних устройств iOS разбирает только сегменты MPEG-TS. Когда важно широкое покрытие приёмников, спаривайте hls5 с запасным hls3, а не поставляйте hls5 в одиночку.
- Забытое шифрование, когда CDN его требует. Некоторые контракты доставки предписывают AES-128 или SAMPLE-AES на сегментах у упаковщика. Проверяйте политику CDN перед публикацией и настраивайте флаги шифрования выше по потоку, а не полагайтесь на достаточность значения платформы по умолчанию.
- Смешение аудиокодеков в одном варианте. HLS v5 поддерживает аудиогруппы по вариантам, но один вариант должен ссылаться на один аудиокодек. Стройте отдельные варианты, предлагая AAC и AC-3 в одном манифесте, вместо их смешения внутри одной ступени.
9. Заметки
- Форма
Packageдля HLS v5 включает и мастер-плейлист, и файлы сегментов fMP4 по вариантам; цели upload должны быть каталогами. - Субтитры, приходящие на контакт Text, связываются из мастер-плейлиста как отдельная группа и подаются как сегменты WebVTT рядом с медиа.