Открыть сервис

Low-Latency HLS

Low-Latency HLS (LL-HLS) — это расширение протокола HTTP Live Streaming (HLS), разработанное компанией Apple для уменьшения задержки (латентности) при передаче потокового видео в реальном времени или с минимальной задержкой. В отличие от классического HLS, где задержка может составлять от 6 до 30 секунд, LL-HLS позволяет достичь значений от 2 до 5 секунд, что делает его пригодным для интерактивных трансляций, прямых эфиров, спортивных событий и других сценариев, требующих низкой задержки.

История и предпосылки создания

Протокол HLS был представлен Apple в 2009 году как решение для адаптивной потоковой передачи видео через HTTP. Он быстро стал стандартом де-факто для iOS, macOS и многих других платформ, благодаря своей простоте, совместимости с CDN и возможности обхода межсетевых экранов. Однако классический HLS имел существенный недостаток — высокую задержку, обусловленную его архитектурой. Видео разбивалось на сегменты длительностью от 6 до 10 секунд, и для воспроизведения требовалось накопить несколько таких сегментов, что приводило к задержке в десятки секунд.

С ростом популярности прямых трансляций, особенно в сфере киберспорта, новостей и социальных сетей, возникла потребность в снижении задержки. Конкурирующие технологии, такие как WebRTC (с задержкой менее 1 секунды) и MPEG-DASH с чанкованным кодированием, начали вытеснять HLS в сценариях реального времени. В ответ на это Apple в 2019 году представила черновик спецификации Low-Latency HLS (LL-HLS), который в 2020 году был включён в стандарт HLS (RFC 8216, обновление). С 2021 года LL-HLS поддерживается в операционных системах Apple (iOS 13+, macOS 10.15+, tvOS 13+) и ряде сторонних плееров.

Принцип работы и архитектура

LL-HLS основан на тех же принципах, что и классический HLS: видео разбивается на небольшие фрагменты (сегменты), которые загружаются через HTTP. Однако ключевое отличие заключается в том, что сегменты делятся на ещё более мелкие части — чанки (chunks). Чанк — это часть сегмента длительностью от 0,2 до 1 секунды. Плеер может начать воспроизведение сразу после загрузки первого чанка, не дожидаясь полного сегмента.

Основные компоненты LL-HLS:

  • Частичные сегменты (Partial Segments) — минимальные единицы данных, которые кодируются и передаются отдельно. Они имеют собственные URL и могут быть загружены плеером по мере готовности.
  • Плейлисты (Playlists) — файлы .m3u8, которые содержат информацию о доступных сегментах и частичных сегментах. В LL-HLS используется два типа плейлистов: основной (media playlist) и манифест (variant playlist). Плейлисты обновляются в реальном времени по мере появления новых чанков.
  • Блоки префикса (Prefetch Hints) — механизм, позволяющий плееру предсказывать, какой следующий чанк будет доступен, и начинать его загрузку до того, как он будет полностью готов. Это достигается путём указания в плейлисте URL следующего чанка, который ещё не завершён.
  • HTTP/2 Server Push — технология, при которой сервер может отправлять данные клиенту без явного запроса. В LL-HLS это используется для ускорения доставки чанков, особенно при низкой пропускной способности сети.

Отличия от классического HLS:

ПараметрКлассический HLSLow-Latency HLS
Длительность сегмента6–10 секунд0,2–1 секунда (чанки)
Задержка (латентность)6–30 секунд2–5 секунд
Подход к загрузкеПоследовательная загрузка целых сегментовЗагрузка чанков по мере готовности
Обновление плейлистовКаждые 6–10 секундКаждые 0,2–1 секунду
ПредзагрузкаНетPrefetch Hints

Требования к инфраструктуре

Для внедрения LL-HLS необходимо соответствие определённым техническим условиям:

  • Кодировщик (encoder) должен поддерживать чанкованное кодирование (chunked encoding) и генерировать частичные сегменты. Популярные кодировщики, такие как FFmpeg (с версии 4.3), Elemental Live, Wowza, поддерживают LL-HLS.
  • Пакетизатор (packager)программное обеспечение, которое формирует плейлисты и управляет доставкой чанков. Например, Shaka Packager или Bento4.
  • CDN (Content Delivery Network) должна поддерживать HTTP/2 Server Push и быструю доставку чанков. Многие крупные CDN (Cloudflare, Akamai, Fastly) адаптированы для LL-HLS.
  • Плеер (player) должен быть совместим с LL-HLS. Нативные плееры Apple (AVPlayer) поддерживают LL-HLS начиная с iOS 13 и macOS 10.15. Сторонние плееры, такие как hls.js (с версии 1.0), также реализуют поддержку.

Преимущества и недостатки

Преимущества:

  • Низкая задержка — от 2 до 5 секунд, что приемлемо для большинства прямых трансляций (за исключением интерактивных чатов, где требуется менее 1 секунды).
  • Совместимость с существующей инфраструктурой — LL-HLS работает через стандартные HTTP-серверы и CDN, не требуя специализированных протоколов (в отличие от WebRTC).
  • Масштабируемость — благодаря использованию HTTP и CDN, LL-HLS легко масштабируется на миллионы зрителей.
  • Адаптивность — как и классический HLS, LL-HLS поддерживает адаптивный битрейт (ABR), что позволяет подстраивать качество видео под скорость интернета.

Недостатки:

  • Зависимость от сети — для достижения низкой задержки требуется стабильное и быстрое соединение. При высокой загрузке сети или плохом качестве связи задержка может увеличиться.
  • Сложность реализации — настройка кодировщика, пакетизатора и CDN для LL-HLS сложнее, чем для классического HLS.
  • Ограниченная поддержка плееров — не все плееры поддерживают LL-HLS, особенно на устаревших устройствах или в браузерах без нативной поддержки.
  • Потребление ресурсов — частая загрузка чанков и обновление плейлистов увеличивает нагрузку на серверы и сеть.

Применение

Low-Latency HLS используется в следующих сценариях:

  • Прямые трансляции спортивных событий — футбол, хоккей, баскетбол, где задержка в 2–5 секунд позволяет зрителям следить за событиями почти в реальном времени.
  • Новостные эфиры — особенно в ситуациях, когда требуется оперативная реакция (например, экстренные выпуски).
  • Киберспорт и гейминг — трансляции игр, где важна синхронизация с комментариями и чатом.
  • Социальные сети и стриминг — платформы вроде Twitch, YouTube Live, VK Видео (в России) используют LL-HLS для улучшения пользовательского опыта.
  • Образовательные вебинары — где задержка в 2–3 секунды не критична, но важна интерактивность.

Сравнение с альтернативами

ТехнологияЗадержкаСовместимостьМасштабируемостьСложность
LL-HLS2–5 сВысокая (iOS, macOS, браузеры с hls.js)ВысокаяСредняя
WebRTC<1 сСредняя (требуется браузер или SDK)Низкая (пиринговое соединение)Высокая
MPEG-DASH с чанкованием2–5 сСредняя (зависит от плеера)ВысокаяСредняя
RTMP1–3 сНизкая (устаревший, не поддерживается в браузерах)НизкаяНизкая

Развитие и перспективы

С 2020 года LL-HLS активно развивается. В 2022 году Apple выпустила обновление спецификации, добавив поддержку HDR-видео, Dolby Atmos и улучшенную обработку рекламных вставок. В России LL-HLS используется рядом крупных стриминговых сервисов, таких как VK Видео, Okko и Иви. Однако широкое внедрение сдерживается необходимостью обновления инфраструктуры и плееров.

В будущем ожидается дальнейшее снижение задержки за счёт использования HTTP/3 и QUIC, а также интеграция с технологиями машинного обучения для предсказания поведения сети.

Источники

  1. Apple Inc. «HTTP Live Streaming» — официальная спецификация (RFC 8216, обновления 2020–2022).
  2. Pantos, R., May, W. «HTTP Live Streaming» (RFC 8216, 2017).
  3. Документация Apple Developer: «Low-Latency HLS» (developer.apple.com).
  4. Статья «Low-Latency HLS: A Technical Overview» на сайте Wowza Media Systems.
  5. Материалы конференции «Streaming Media West 2021» — секция по LL-HLS.
  6. Ресурс «FFmpeg Documentation» — описание параметров для LL-HLS.
  7. «hls.js Documentation» — описание поддержки LL-HLS в браузерном плеере.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →