Czym jest plik M3U?
M3U (URL MP3) to plik listy odtwarzania audio przechowywany z rozszerzeniem .m3u. M3U nie jest rzeczywistym plikiem audio, po prostu wskazuje na pliki audio, a czasem wideo. M3U został opracowany do użytku z oprogramowaniem Winplay3 firmy Fraunhofer. Jest również obsługiwany przez różne odtwarzacze multimedialne i oprogramowanie.
Format pliku M3U
Nie ma oficjalnej specyfikacji formatu pliku M3U, jest to de facto standard. M3U to zwykły plik tekstowy, który używa rozszerzenia .m3u, jeśli tekst jest zakodowany w domyślnym kodowaniu systemu lokalnego innym niż Unicode lub z rozszerzeniem .m3u8, jeśli tekst jest zakodowany w UTF-8. Każdy wpis w pliku M3U może być jednym z następujących:
- Bezwzględna ścieżka do pliku
- Ścieżka pliku względem pliku M3U.
- Adres URL
Rozszerzony M3U
W rozszerzonym M3U wprowadzono dodatkowe dyrektywy, które zaczynają się od „#” i kończą dwukropkiem (:), jeśli mają parametry. Poniżej podano listę dyrektyw dla rozszerzonego M3U.
- #EXTM3U - Jest to nagłówek pliku wskazujący rozszerzone M3U i musi być pierwszym wierszem pliku.
- #EXTENC: - Kodowanie tekstu. Musi to być druga linia pliku.
- #EXTINF: - Używany do informacji o utworze i innych dodatkowych właściwości.
- #PLAYLIST: - Tytuł listy odtwarzania
- #EXTGRP: - Rozpocznij grupowanie nazw
- #EXTALB: - Informacje o albumie
- #EXTART: - Artysta albumu
- #EXTGENRE - Gatunek albumu
- #EXTM3A - Pojedyncza lista odtwarzania dla utworów z albumu lub rozdziałów.
- #EXTBYT: - Rozmiar pliku w bajtach.
- #EXTBIN: - Następują dane binarne.
- #EXTIMG: - Logo, okładka lub inne obrazy.
HLS M3U
HLS (HTTP Live Streaming) został stworzony przez firmę Apple w celu strumieniowego przesyłania dźwięku i radia na urządzenia z systemem iOS. Opiera się na rozszerzonym M3U zakodowanym w UTF-8. Został znormalizowany jako RFC 8216 w 2017 roku przez IETF. Tagi listy odtwarzania HLS zaczynają się od „#EXT-X-”. Poniżej podano listę tagów dla HLS
- EXT-X-VERSION — wskazuje wersję zgodności pliku na podstawie nośnika i jego serwera.
- #EXT-X-START: — wskazuje preferowany punkt początkowy listy odtwarzania.
- #EXT-X-PLAYLIST-TYPE: - Podaje typ listy odtwarzania (EVENT lub VOD).
- #EXT-X-TARGETDURATION: - Określa maksymalny czas trwania Segmentu.
- #EXT-X-MEDIA-SEQUENCE: - Wskazuje numer sekwencji nośnika.
- #EXT-X-INDEPENDENT-SEGMENTS — wskazuje, że wszystkie próbki multimediów są niezależne i mogą być dekodowane bez innych segmentów.
- #EXT-X-MEDIA: - Służy do łączenia list odtwarzania multimediów, które zawierają alternatywne wersje tej samej treści.
- #EXT-X-STREAM-INF: - Określa strumień wariantów, który jest częścią wersji.
- #EXT-X-BYTERANGE: — wskazuje, że segment multimediów jest podzakresem zasobu identyfikowanego przez jego identyfikator URI.
- #EXT-X-DISCONTINUITY — wskazuje na brak ciągłości między poprzedzającymi i kolejnymi segmentami mediów.
- #EXT-X-DISCONTINUITY-SEQUENCE: - Umożliwia synchronizację między różnymi wersjami tego samego strumienia wariantów lub różnych strumieni wariantów.
- #EXT-X-KEY: - Określa sposób odszyfrowywania segmentów multimediów.
- #EXT-X-MAP: - Określa, jak uzyskać sekcję inicjalizacji nośnika. Wymagane jest przeanalizowanie odpowiednich segmentów mediów.
- #EXT-X-PROGRAM-DATE-TIME: - Wiąże pierwszą próbkę Segmentu Mediów z bezwzględną datą i/lub godziną.
- #EXT-X-DATERANGE: - Łączy zakres danych.
- #EXT-XI-FRAMES-ONLY — wskazuje, że każdy segment multimediów na liście odtwarzania opisuje pojedynczą ramkę I.
- EXT-XI-FRAME-STREAM-INF - Wskazuje, że plik listy odtwarzania zawiera I-ramki prezentacji multimedialnej.
- #EXT-X-SESSION-DATA: - Umożliwia przechowywanie dowolnych danych sesji przenoszone na głównej liście odtwarzania.
- #EXT-X-SESSION-KEY: - Pozwala na szyfrowanie kluczy. Klient może wstępnie załadować te klucze bez uprzedniego odczytywania listy odtwarzania.
- #EXT-X-ENDLIST — wskazuje, że do pliku nie zostaną dodane żadne segmenty multimediów.
Poniżej znajduje się lista typów mediów internetowych używanych przez M3U:
- application/vnd.apple.mpegurl: Jest to jedyny zarejestrowany typ multimediów (zarejestrowany w 2009 r.) dla M3U, który jest używany do odwoływania się do list odtwarzania w aplikacjach HLS.
- Następujące typy mediów internetowych są używane przez aplikacje inne niż HLS.
- application/mpegurl
- application/x-mpegurl
- audio/mpegurl
- audio/x-mpegurl
Przykład M3U
To jest przykład pliku 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