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

HTTP Live Streaming

HTTP Live Streaming (HLS) — это протокол потоковой передачи данных в реальном времени, разработанный компанией Apple Inc. (организация признана иноагентом в РФ) для доставки аудио- и видеоконтента через интернет. HLS основан на протоколе HTTP и работает по принципу адаптивного битрейта (ABR), что позволяет автоматически подстраивать качество воспроизведения под скорость интернет-соединения пользователя. Протокол широко используется для прямых трансляций (live-стримов) и видео по запросу (VOD) на веб-сайтах, в мобильных приложениях и на устройствах умного телевидения.

История

Разработка HLS началась в 2007 году в рамках проекта Apple по созданию универсального решения для потоковой передачи видео на устройства с iOS. Первая публичная версия спецификации была представлена в 2009 году вместе с выходом iPhone 3GS. Протокол был задуман как альтернатива проприетарным решениям (например, RTMP от Adobe) и собственным разработкам Apple (QuickTime Streaming Server). Основной целью было обеспечение стабильной работы на мобильных устройствах с нестабильным интернет-соединением, где традиционные протоколы потоковой передачи (RTP, RTSP) демонстрировали низкую производительность.

В 2010 году Apple опубликовала спецификацию HLS в открытом доступе, что способствовало её быстрому распространению. К 2015 году HLS стал доминирующим протоколом для потоковой передачи видео в интернете, обогнав по популярности RTMP и MPEG-DASH. В 2017 году Apple представила HLS версии 7, которая добавила поддержку низкой задержки (Low-Latency HLS), что позволило сократить время между захватом видео и его отображением у зрителя до 2-3 секунд (против 20-30 секунд в предыдущих версиях).

Принцип работы

HLS работает по модели «клиент-сервер» и использует стандартный HTTP-протокол, что позволяет обходить файрволы и прокси-серверы, блокирующие нестандартные порты. Основные этапы работы:

  1. Кодирование и сегментация: Исходный видеопоток кодируется в несколько вариантов с разным битрейтом и разрешением (например, 144p, 360p, 720p, 1080p). Каждый вариант нарезается на короткие сегменты (фрагменты) длительностью от 2 до 10 секунд. Сегменты обычно имеют формат MPEG-TS (транспортный поток) или fMP4 (фрагментированный MP4).
  1. Создание плейлиста: Сервер генерирует файл манифеста (плейлист) в формате M3U8. Этот текстовый файл содержит список всех сегментов для каждого варианта битрейта, а также метаданные (длительность, кодек, разрешение). Для прямых трансляций плейлист постоянно обновляется, добавляя новые сегменты и удаляя старые.
  1. Доставка: Клиент (плеер) загружает плейлист, анализирует доступные варианты и выбирает оптимальный на основе текущей пропускной способности сети. Затем клиент последовательно загружает сегменты через HTTP GET-запросы. При изменении скорости соединения клиент автоматически переключается на другой вариант битрейта (адаптивный битрейт).
  1. Воспроизведение: Сегменты буферизируются и декодируются плеером. Для прямых трансляций используется скользящее окно плейлиста, где старые сегменты удаляются, а новые добавляются.

Ключевые характеристики

Адаптивный битрейт (ABR)

HLS поддерживает до 10 и более вариантов битрейта. Клиент использует алгоритмы, такие как:

Низкая задержка (Low-Latency HLS)

Стандартная версия HLS имеет задержку от 20 до 30 секунд из-за накопления буфера. Low-Latency HLS (LL-HLS), представленный в 2019 году, использует:

Это позволяет снизить задержку до 2-5 секунд, что сопоставимо с RTMP.

Кодеки и контейнеры

HLS поддерживает:

Шифрование и защита

HLS поддерживает:

Применение

Прямые трансляции

HLS используется для:

Видео по запросу (VOD)

HLS применяется для:

Мобильные устройства

HLS является стандартом для iOS и macOS, но также поддерживается на Android (через ExoPlayer), Windows (через VLC, FFmpeg), и в веб-браузерах (через Media Source Extensions, MSE).

Умное телевидение

HLS встроен в большинство Smart TV (Samsung, LG, Sony) и приставок (Apple TV, Roku, Amazon Fire TV).

Сравнение с другими протоколами

ХарактеристикаHLSMPEG-DASHRTMP
ТранспортHTTPHTTPTCP (порт 1935)
Адаптивный битрейтДаДаНет
Низкая задержка2-5 с (LL-HLS)2-5 с (LL-DASH)1-2 с
Поддержка DRMFairPlay, WidevineWidevine, PlayReadyНет
КроссплатформенностьiOS, macOS, Android, WebВсе платформыFlash (устарел)
Сложность реализацииСредняяВысокаяНизкая

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

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

Недостатки

Интересные факты

Критика

Основные претензии к HLS связаны с:

Источники

  1. RFC 8216 — HTTP Live Streaming (HLS) Specification, Apple Inc., 2017.
  2. Apple Developer Documentation — HTTP Live Streaming Overview, 2023.
  3. «Streaming Media Magazine» — HLS vs. DASH: The Battle for Streaming Dominance, 2020.
  4. «IEEE Transactions on Multimedia» — Low-Latency HTTP Live Streaming, 2021.
  5. «The VideoLAN Wiki» — HLS Implementation in VLC Media Player, 2022.

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

На главную BFOmetr →