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 →


