Що таке файл M3U?
M3U (URL-адреса MP3) — це аудіофайл списку відтворення, який зберігається з розширенням .m3u. M3U не є справжнім аудіофайлом, він лише вказує на аудіо та іноді відеофайли. M3U був розроблений Fraunhofer для використання з програмним забезпеченням Winplay3. Він також підтримується різними медіаплеєрами та програмним забезпеченням.
Формат файлу M3U
Немає офіційної специфікації для формату файлу M3U, це стандарт де-факто. M3U — це звичайний текстовий файл, який використовує розширення .m3u, якщо текст закодовано в кодуванні локальної системи за замовчуванням, відмінному від Юнікоду, або з розширенням .m3u8, якщо текст закодовано в UTF-8. Кожен запис у файлі M3U може бути одним із таких:
- Абсолютний шлях до файлу
- Шлях до файлу відносно файлу M3U.
- URL
Розширений M3U
У розширеному M3U введено додаткові директиви, які починаються з «#» і закінчуються двокрапкою (:), якщо вони мають параметри. Нижче наведено список директив для розширеного M3U.
- #EXTM3U - це заголовок файлу, що вказує на Extended M3U і має бути першим рядком файлу.
- #EXTENC: - Кодування тексту. Це має бути другий рядок файлу.
- #EXTINF: - Використовується для інформації про трек та інших додаткових властивостей.
- #PLAYLIST: - назва списку відтворення
- #EXTGRP: - початок групування імен
- #EXTALB: - Інформація про альбом
- #EXTART: - Виконавець альбому
- #EXTGENRE - Жанр альбому
- #EXTM3A - список відтворення одного файлу для композицій або розділів альбому.
- #EXTBYT: - Розмір файлу в байтах.
- #EXTBIN: - слідують двійкові дані.
- #EXTIMG: - логотип, обкладинка або інші зображення.
HLS M3U
HLS (HTTP Live Streaming) був створений Apple для потокової передачі аудіо та радіо на пристрої iOS. Він заснований на розширеному M3U в кодуванні UTF-8. Він був стандартизований як RFC 8216 у 2017 році IETF. Теги для списку відтворення HLS починаються з “#EXT-X-”. Нижче наведено список тегів для HLS
- EXT-X-VERSION - вказує версію сумісності файлу на основі носія та його сервера.
- #EXT-X-START: - вказує бажану початкову точку для списку відтворення.
- #EXT-X-PLAYLIST-TYPE: - надає тип списку відтворення (ПОДІЯ або VOD).
- #EXT-X-TARGETDURATION: - визначає максимальну тривалість сегмента.
- #EXT-X-MEDIA-SEQUENCE: - вказує порядковий номер носія.
- #EXT-X-INDEPENDENT-SEGMENTS - вказує на те, що всі медіа-семпли незалежні та можуть бути декодовані без інших сегментів.
- #EXT-X-MEDIA: - використовується для пов’язування списків відтворення медіа, які містять альтернативні відтворення того самого вмісту.
- #EXT-X-STREAM-INF: - визначає варіантний потік, який є частиною відтворень.
- #EXT-X-BYTERANGE: - вказує на те, що медіасегмент є піддіапазоном ресурсу, визначеного його URI.
- #EXT-X-DISCONTINUITY - вказує на розрив між попереднім і наступним медіа-сегментами.
- #EXT-X-DISCONTINUITY-SEQUENCE: - дозволяє синхронізувати між різними відтвореннями одного варіантного потоку або різних варіантних потоків.
- #EXT-X-KEY: - визначає спосіб розшифровки медіа-сегментів.
- #EXT-X-MAP: - визначає, як отримати розділ ініціалізації медіа. Потрібно розібрати відповідні медіа-сегменти.
- #EXT-X-PROGRAM-DATE-TIME: - пов’язує перший зразок медіа-сегмента з абсолютною датою та/або часом.
- #EXT-X-DATERANGE: - пов’язує діапазон даних.
- #EXT-XI-FRAMES-ONLY - вказує, що кожен медіа-сегмент у списку відтворення описує один I-кадр.
- EXT-XI-FRAME-STREAM-INF - вказує, що файл списку відтворення містить I-кадри мультимедійної презентації.
- #EXT-X-SESSION-DATA: - дозволяє зберігати довільні дані сеансу міститься в головному списку відтворення.
- #EXT-X-SESSION-KEY: - дозволяє використовувати ключі шифрування. Клієнт може попередньо завантажити ці ключі без попереднього читання списку відтворення.
- #EXT-X-ENDLIST - вказує на те, що до файлу більше не буде додано медіасегментів.
Нижче наведено список типів Інтернет-медіа, які використовує M3U:
- application/vnd.apple.mpegurl: це єдиний зареєстрований медіа-тип (зареєстрований у 2009 році) для M3U, який використовується для позначення списків відтворення в програмах HLS.
- Програми, що не належать до HLS, використовують такі типи Інтернет-медіа.
- application/mpegurl
- application/x-mpegurl
- audio/mpegurl
- audio/x-mpegurl
Приклад M3U
Це приклад файлу M3U.
#EXTM3U
#EXTINF:111, Sample artist name - Sample track title
C:\Music\SampleMusic.mp3
#EXTINF:222,Example Artist name - Example track title
C:\Music\ExampleMusic.mp3