Τι είναι ένα αρχείο M3U;
Το M3U (URL MP3) είναι ένα αρχείο λίστας αναπαραγωγής ήχου που είναι αποθηκευμένο με την επέκταση .m3u. Το M3U δεν είναι πραγματικό αρχείο ήχου, απλώς δείχνει αρχεία ήχου και μερικές φορές βίντεο. Το M3U αναπτύχθηκε για χρήση με το λογισμικό Winplay3 από την Fraunhofer. Υποστηρίζεται επίσης από διάφορες συσκευές αναπαραγωγής πολυμέσων και λογισμικό.
Μορφή αρχείου M3U
Δεν υπάρχει επίσημη προδιαγραφή για τη μορφή αρχείου M3U, είναι ένα de-facto πρότυπο. Το M3U είναι ένα αρχείο απλού κειμένου που χρησιμοποιεί την επέκταση .m3u εάν το κείμενο είναι κωδικοποιημένο στην προεπιλεγμένη κωδικοποίηση μη Unicode του τοπικού συστήματος ή με την επέκταση .m3u8 εάν το κείμενο είναι κωδικοποιημένο UTF-8. Κάθε καταχώρηση στο αρχείο M3U μπορεί να είναι ένα από τα ακόλουθα:
- Απόλυτη διαδρομή προς το αρχείο
- Διαδρομή αρχείου σε σχέση με το αρχείο M3U.
- URL
Εκτεταμένο M3U
Στο εκτεταμένο M3U εισάγονται πρόσθετες οδηγίες που ξεκινούν με “#” και τελειώνουν με άνω και κάτω τελεία(:) εάν έχουν παραμέτρους. Παρακάτω δίνεται μια λίστα οδηγιών για το εκτεταμένο M3U.
- #EXTM3U - Είναι η κεφαλίδα αρχείου που υποδεικνύει Extended M3U και πρέπει να είναι η πρώτη γραμμή του αρχείου.
- #EXTENC: - Κωδικοποίηση κειμένου. Πρέπει να είναι η 2η γραμμή του αρχείου.
- #EXTINF: - Χρησιμοποιείται για πληροφορίες κομματιού και άλλες πρόσθετες ιδιότητες.
- #PLAYLIST: - Ο τίτλος της λίστας αναπαραγωγής
- #EXTGRP: - Έναρξη ομαδοποίησης ονομάτων
- #EXTALB: - Πληροφορίες άλμπουμ
- #EXTART: - Καλλιτέχνης άλμπουμ
- #EXTGENRE - Είδος άλμπουμ
- #EXTM3A - Λίστα αναπαραγωγής ενός αρχείου για κομμάτια ή κεφάλαια άλμπουμ.
- #EXTBYT: - Μέγεθος αρχείου σε byte.
- #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: - Παρέχει τον τύπο της λίστας αναπαραγωγής (EVENT ή 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: - Επιτρέπει το συγχρονισμό μεταξύ διαφορετικών παραδόσεων της ίδιας Variant Stream ή διαφορετικών Variant Streams.
- #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-frame παρουσίασης Πολυμέσων.
- #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