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

M3U8

M3U8 — это текстовый формат файла плейлиста, основанный на расширенной спецификации M3U, предназначенный для хранения списка медиафайлов и потоков. В отличие от классического M3U, файлы M3U8 используют кодировку UTF-8, что позволяет корректно отображать символы национальных алфавитов, включая кириллицу. Формат широко применяется в системах потокового вещания по протоколу HTTP Live Streaming (HLS), разработанному компанией Apple.

История и происхождение

Формат M3U возник как развитие более старого формата M3U, который, в свою очередь, был создан для плейлистов аудиоплееров. Изначально M3U представлял собой простой текстовый файл со списком путей к аудиофайлам. С развитием интернет-вещания и появлением необходимости передавать потоковое видео, потребовался более гибкий и функциональный формат.

В 2009 году компания Apple представила протокол HTTP Live Streaming (HLS) для своей платформы QuickTime и мобильных устройств iPhone. Ключевым элементом HLS стал файл плейлиста, который получил расширение .m3u8. Это было обусловлено необходимостью поддержки UTF-8 для корректной работы с интернациональными названиями и метаданными. Впоследствии HLS стал одним из самых распространённых протоколов для адаптивного потокового вещания в интернете, а формат M3U8 — его неотъемлемой частью.

Структура и синтаксис

Файл M3U8 представляет собой обычный текстовый файл в кодировке UTF-8. Его структура строго регламентирована, особенно в контексте использования с HLS. Файл состоит из строк, каждая из которых может быть либо директивой (тегом), начинающейся с символа #, либо URL-адресом или путём к медиафайлу.

Основные директивы

  • #EXTM3U — обязательный заголовок, указывающий, что файл является расширенным плейлистом M3U.
  • #EXTINF: — директива, предшествующая URL медиафайла. Содержит длительность трека в секундах и, опционально, название. Формат: #EXTINF:длительность,название.
  • #EXT-X-TARGETDURATION — максимальная длительность сегмента в секундах, используемая в HLS.
  • #EXT-X-MEDIA-SEQUENCE — номер первого сегмента в последовательности (для живых трансляций).
  • #EXT-X-STREAM-INF — директива, описывающая вариант потока (для адаптивного битрейта). Содержит параметры: BANDWIDTH (битрейт), RESOLUTION (разрешение), CODECS (кодеки) и другие.
  • #EXT-X-ENDLISTмаркер конца плейлиста (для записей по требованию, VOD).

Пример простого плейлиста VOD (видео по запросу)

```

EXTM3U

EXTINF:10.0,

segment1.ts

EXTINF:10.0,

segment2.ts

EXTINF:10.0,

segment3.ts

EXT-X-ENDLIST

```

Пример плейлиста для адаптивного HLS

```

EXTM3U

EXT-X-STREAM-INF:BANDWIDTH=1280000,RESOLUTION=640x360

low.m3u8

EXT-X-STREAM-INF:BANDWIDTH=2560000,RESOLUTION=1280x720

mid.m3u8

EXT-X-STREAM-INF:BANDWIDTH=5120000,RESOLUTION=1920x1080

high.m3u8 ```

В данном примере основной файл (master playlist) содержит ссылки на три вложенных плейлиста с разными битрейтами. Клиент автоматически выбирает подходящий поток в зависимости от пропускной способности сети.

Применение в потоковом вещании

Основная область применения M3U8 — протокол HTTP Live Streaming (HLS). HLS разбивает видео- и аудиопоток на небольшие сегменты (обычно длительностью 2–10 секунд), которые загружаются по протоколу HTTP. Файл M3U8 выступает в роли «карты» этих сегментов, указывая их порядок, длительность и URL.

Типы HLS-плейлистов

  • Master Playlist (главный плейлист) — содержит ссылки на несколько вариантов потока с разным качеством (битрейт, разрешение). Позволяет реализовать адаптивное вещание.
  • Media Playlist (медиа-плейлист) — содержит список сегментов одного варианта потока. Может быть для VOD (с маркером #EXT-X-ENDLIST) или для live-трансляции (без маркера, с обновлением в реальном времени).

Использование в IPTV и онлайн-телевидении

Формат M3U8 также широко используется в системах IPTV и для организации списков каналов в медиаплеерах (например, VLC, IPTV Smarters). В этом контексте файл M3U8 может содержать ссылки на живые телеканалы, передаваемые по протоколу HLS. Такие плейлисты часто распространяются в виде файлов с расширением .m3u или .m3u8 и содержат информацию о названии канала (#EXTINF:-1,Название канала) и URL потока.

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

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

  • Кроссплатформенность — формат поддерживается большинством современных медиаплееров и браузеров (через HTML5 video).
  • Адаптивность — возможность автоматического переключения между потоками разного качества в зависимости от скорости интернета.
  • Простота — текстовый файл легко редактировать и генерировать программно.
  • Поддержка UTF-8 — корректная работа с русскоязычными названиями и метаданными.

Недостатки

  • Задержка (latency) — из-за сегментации потока задержка при живых трансляциях может составлять от 10 до 30 секунд, что больше, чем у протоколов на основе UDP (например, RTMP).
  • Размер файла — для длительных записей плейлист может стать очень большим, если не используется динамическое обновление.
  • Зависимость от HTTP — протокол HLS требует стабильного HTTP-сервера и может быть менее эффективен при низкой пропускной способности, чем специализированные протоколы.

Связь с другими форматами

M3U8 является прямым наследником M3U и часто используется совместно с другими форматами и протоколами:

  • M3U — базовый формат без поддержки UTF-8 и расширенных директив HLS.
  • PLS — альтернативный формат плейлистов, используемый в некоторых плеерах.
  • HLS (HTTP Live Streaming) — протокол, для которого M3U8 является основным форматом плейлистов.
  • DASH (Dynamic Adaptive Streaming over HTTP) — альтернативный протокол адаптивного вещания, использующий формат MPD (Media Presentation Description).

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

  • Формат M3U8 получил своё название от кодировки UTF-8, которая пришла на смену ASCII в оригинальном M3U.
  • Несмотря на то, что HLS был разработан Apple, он стал де-факто стандартом для потокового вещания в интернете и поддерживается на всех платформах, включая Android, Windows и Linux.
  • В России формат M3U8 активно используется для организации списков IPTV-каналов, особенно в частных и пиратских плейлистах, что создаёт проблемы с авторскими правами и лицензированием.

Источники

  • Спецификация HTTP Live Streaming (Apple Inc.)
  • RFC 8216 — HTTP Live Streaming (IETF)
  • Документация по формату M3U (VideoLAN)
  • Статьи на Habr и других профильных ресурсах о потоковом вещании

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

На главную BFOmetr →