Медиа.маги Документация

Last updated

hls3

hls3 упаковывает дорожки аудио и видео в плейлист HLS v3.

1. Сводка

Упаковывает закодированные дорожки аудио и видео в плейлист HLS v3 с сегментами транспортного потока MPEG-2. Нацелен на максимально широкий охват приёмников — устаревшие iOS, старые умные телевизоры и приставки, появившиеся до поддержки фрагментированного MP4.

2. Когда использовать

  • Доставляете в популяцию плееров, включающую устаревшие iOS или старые приставки, не поддерживающие HLS v5 / fMP4.
  • Готовите запасной плейлист для адаптивной лестницы, чей основной выход — hls5 или dash, чтобы у старых приёмников оставался рабочий вариант.
  • Собираете многорендерийную лестницу HLS, где каждая ступень — видео H.264 в паре с аудиодорожкой AAC, поскольку сегменты v3 — MPEG-TS.

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. Одна или несколько закодированных аудиодорожек. Обязателен.

    Совместимые узлы выше по потоку:

    • aac — кодирует аудио кодеком AAC.
    • ac3 — кодирует аудио кодеком AC-3 (Dolby Digital).
    • eac3 — кодирует аудио кодеком E-AC-3 (Dolby Digital Plus).
    • pcm — даёт несжатую аудиодорожку PCM.
    • copy — пропускает исходную аудиодорожку без изменений.

4. Выходы

  • Packagecore.Package. Плейлист HLS v3 (.m3u8) плюс его файлы сегментов MPEG-TS, готовые к публикации в CDN или хранилище.

    Совместимые узлы ниже по потоку:

    • upload — записывает пакет на целевой URL.
    • analyze — инспектирует пакет и сообщает свойства медиа.
    • concat — склеивает совместимые пакеты встык.
    • delete — удаляет пакет после того, как потребители ниже по потоку его прочли.
    • move — перемещает пакет в другое место.

5. Параметры

Форма «Настройки» узла hls3.

Форма «Настройки» — один столбец с тремя полями. Описаны в порядке следования в форме.

  • Node Label (string, по умолчанию пусто)

    Произвольное имя, отображаемое на плитке узла на холсте.

    • Что задаёт. Подпись над плиткой; на плейлист не влияет.
    • Когда менять. Задавайте, когда в одном графе несколько упаковщиков — например, запасной HLS v3 рядом с HLS v5 и DASH, — чтобы каждый выход был узнаваем с одного взгляда.
  • Output Filename (string, по умолчанию пусто; необязательно)

    Имя мастер-плейлиста верхнего уровня.

    • Что задаёт. Имя файла .m3u8, записываемое под выходным URL процесса, плюс префикс каталога, под которым размещаются сегменты, когда значение содержит компонент каталога.
    • Когда менять. Задавайте, чтобы держать плейлисты соседних упаковщиков в разных каталогах — например, hls3/index.m3u8 рядом с hls5/index.m3u8 в одном выходном бакете. Оставляйте пустым для значения платформы по умолчанию.
    • Переменные. поддерживает $variables.
  • Segment Duration (int, секунды, обязательно)

    Целевая длина сегмента в секундах.

    • Что задаёт. Как часто упаковщик закрывает текущий сегмент MPEG-TS и пишет следующий; #EXT-X-TARGETDURATION плейлиста размечается под это значение.
    • Когда менять. Более короткие сегменты режут задержку старта и переключения ценой большего числа запросов в минуту; более длинные дружественнее к кэшированию CDN и длинному VOD. Подгоняйте значение под ритм, который ожидает принимающий плеер, и держите его согласованным по рендериям, делящим плейлист.
    • Обязательно. да.

Соответствие JSON-ключей и названий полей

JSON-ключи opt, которые встречаются в файлах процессов, соответствуют названиям полей формы так:

JSON-ключ Название поля
name Output Filename
segdur Segment Duration

6. Пример

Адаптивный стриминг с HLS, DASH и субтитрами на холсте

Полный разбор — переменные, настройка каждого узла и ожидаемый результат — смотрите в Adaptive streaming with HLS, DASH and captions.

7. Где используется

  • Adaptive streaming with HLS, DASH and captions — упаковывает рендерии программного x264 и NetInt H.264 вместе с закодированным аудио AAC и субтитрированной ветвью ccinject в единый плейлист HLS v3 для покрытия устаревших приёмников.

8. Антипаттерны

  • Выбор HLS v3, когда доступен v5. Когда целевая аудитория на современных iOS / tvOS / Safari, HLS v5 (fMP4) — лучший вариант по умолчанию: он поддерживает HEVC, многокодековое аудио и более богатое шифрование. Используйте hls3 только когда есть свидетельства, что заметная доля приёмников не читает сегменты fMP4.
  • Длинные длительности сегмента для низколатентного стриминга. Ритм сегментов MPEG-TS задаёт пол задержки переключения; лестницы, нацеленные на near-live сценарии, нуждаются в коротких сегментах. Оставляйте более длинные сегменты для catch-up и VOD, где кэширование важнее задержки.
  • Смешение видеокодеков между вариантами. HLS v3 ожидает, что каждый вариант в мастер-плейлисте — H.264. Попытка подмешать рендерии HEVC или AV1 молча сломает старые приёмники — держите их в параллельном выходе hls5 или dash.

9. Заметки

  • Форма Package для HLS v3 включает файлы сегментов MPEG-TS; если вы загружаете её через upload, целевой URL должен быть каталогом, а не путём к одному файлу.
  • HLS v3 не несёт сайдкар-наборы адаптации субтитров нативно, как hls5 / dash. Вжигайте субтитры в битовый поток H.264 выше по потоку узлом ccinject, когда v3 — единственный выход.
Медиа.маги Документация