Формат M3U: структура и применение¶
M3U — это текстовый формат файла-плейлиста, предназначенный для хранения списков мультимедийных файлов (аудио, видео, потокового вещания) и разработанный компанией Nullsoft для медиаплеера Winamp. Файлы формата M3U представляют собой обычный текст с кодировкой, как правило, ASCII или UTF-8, и содержат либо абсолютные или относительные пути к локальным файлам, либо URL-адреса сетевых ресурсов. Благодаря простоте и открытости спецификации, M3U стал де-факто стандартом для обмена плейлистами и используется практически во всех современных медиаплеерах, включая VLC, foobar2000, AIMP и аппаратные устройства.
¶История и развитие
Формат M3U появился в 1996 году вместе с первыми версиями плеера Winamp. Изначально он использовался для воспроизведения локальных музыкальных файлов, позволяя пользователям группировать треки в удобном порядке. Расширение файла происходит от аббревиатуры «MP3 URL» (или, по другой версии, «Moving Picture Experts Group Layer 3 Uniform Resource Locator»), что подчёркивает его изначальную связь с аудиофайлами MP3.
С развитием интернет-радио и потокового видео формат был адаптирован для работы с URL-адресами. Это позволило использовать M3U для подписки на интернет-каналы. Позже появилось расширение M3U8, которое отличается от базового формата обязательным использованием кодировки UTF-8 для поддержки символов национальных алфавитов (например, кириллицы). В остальном структура M3U8 идентична M3U, и большинство современных плееров автоматически распознают оба типа, ориентируясь на содержимое.
¶Структура файла и синтаксис
Базовый файл M3U имеет простую структуру. Каждая строка представляет собой либо директиву, начинающуюся с символа #, либо путь к медиафайлу. Строки, начинающиеся с #, по умолчанию считаются комментариями и игнорируются плеером, однако существуют специальные расширенные директивы, которые несут служебную информацию.
Основные элементы синтаксиса:
- Пути к файлам: Могут быть абсолютными (
C:\Music\Song.mp3или/home/user/Music/Song.mp3) или относительными (Music\Song.mp3). Относительные пути указываются по отношению к расположению самого файла плейлиста. - URL-адреса: Для потокового вещания указывается прямая ссылка на поток (например,
http://example.com:8000/stream`). - Директива
#EXTM3U: Является маркером заголовка расширенного формата M3U. Если файл содержит эту строку в начале, плеер переключается в режим расширенного синтаксиса. - Директива
#EXTINF: Строка расширенной информации о дорожке. Следует непосредственно перед строкой пути к файлу и содержит длительность в секундах и название трека. Синтаксис выглядит как#EXTINF:123,Название исполнителя — Название трека.
Пример содержимого расширенного M3U-файла:
```
¶EXTM3U
¶EXTINF:254,Queen - Bohemian Rhapsody
/Media/Music/Queen/Bohemian Rhapsody.mp3
¶EXTINF:211,The Beatles - Come Together
http://example.com/stream/beatles.mp3 ```
¶Разновидности формата
Помимо классического M3U, существует несколько смежных форматов, которые часто путают с оригиналом.
¶M3U8
Как упоминалось выше, это версия формата с кодировкой UTF-8. Файлы M3U8 часто используются для плейлистов адаптивного потокового вещания (HLS — HTTP Live Streaming), разработанного компанией Apple. В контексте HLS файл M3U8 содержит не просто список песен, а список сегментов видеофайлов (.ts) и ссылки на другие плейлисты (master playlist), что позволяет видеоплееру переключать качество видео в зависимости от скорости интернет-соединения.
¶Расширенный M3U (Extended M3U)
Неформальное название формата, использующего директивы #EXTINF и заголовок #EXTM3U. Этот вариант позволяет хранить метаданные (названия, длительность) прямо в файле, что удобно для переноса плейлистов между разными программами без потери информации об исполнителях.
¶Применение в IP-телевидении
Отдельной и важной областью применения M3U-файлов является организация просмотра IP-телевидения (IPTV). Провайдеры и энтузиасты создают плейлисты, в которых каждой строке-URL соответствует телевизионный канал. Такие плейлисты позволяют пользователям смотреть телеканалы в приложениях-плеерах (VLC, IPTV-плеерах) на компьютерах, смартфонах и Smart TV.
В таких файлах директива #EXTINF используется для указания названия канала, а в качестве URL выступает ссылка на поток (RTSP, HTTP, HLS). Группировка каналов осуществляется с помощью директивы #EXTGRP:Название группы. Это позволяет плееру сортировать каналы по категориям (например, «Новости», «Спорт», «Детские»). Однако стоит учитывать, что распространение плейлистов с нелицензионным контентом может нарушать законодательство об авторском праве.
¶Программное обеспечение для работы с M3U
Практически любой медиаплеер поддерживает открытие файлов M3U. Среди наиболее известных программ:
- VLC media player: Бесплатный плеер с открытым исходным кодом, который корректно воспроизводит как локальные плейлисты, так и сетевые потоки. Поддерживает экспорт и импорт M3U.
- AIMP: Российский аудиоплеер, поддерживающий работу с плейлистами формата M3U и M3U8.
- foobar2000: Мощный аудиоплеер для Windows с расширенными возможностями управления библиотекой, поддерживает M3U.
- Winamp: Оригинальный плеер, для которого формат был создан, до сих пор используется энтузиастами.
Кроме того, существуют специализированные редакторы плейлистов, позволяющие автоматически генерировать M3U-файлы на основе содержимого папок, удалять дубликаты и редактировать метаданные.
¶Преимущества и недостатки
К преимуществам формата M3U относятся его открытость, простота создания (файл можно написать даже в простом текстовом редакторе) и кроссплатформенность. Он не привязан к конкретному кодеку или контейнеру, а лишь указывает путь к медиаресурсу.
Недостатки связаны с ограниченной функциональностью по сравнению с более современными форматами, такими как XML-базирующийся XSPF (XML Shareable Playlist Format). M3U не поддерживает вложенные плейлисты, сложную структуру метаданных или встраивание обложек альбомов. Также относительные пути могут «ломаться» при перемещении папок, а для потокового вещания в формате HLS требуется строгое соблюдение таймингов.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →
