8 лучших плееров M3U8 для Windows 10 / 8.1 / 8/7 и Mac OS X / 11/12


Если вы любитель музыки, а также разбираетесь в технологиях, возможно, вы знакомы с расширением файла M3U8. Тем не менее, большинство людей не понимают этот формат или даже не слышали о нем. Фактически, M3U8 широко используется на компьютерах, веб-сайтах и ​​в потоковых сервисах.

Этот пост подробно поделится базовыми знаниями об этом аудиоформате. Тогда вы поймете, что такое M3U8 и как его слушать с лучшим M3U8 проигрыватели в Windows 10 / 8.1 / 8/7 и Mac OS X / 11/12.

M3U8 проигрыватели

  • Часть 1: Что такое m3u8?
  • Part 2: Лучшие игроки 5 M3U8
  • Part 3: Лучшие игроки 3 m3u8 онлайн
  • Часть 4. Часто задаваемые вопросы о плеере M3U8

Анализ

Первое что пришло мне в голову это записать видео с экрана, например через QuickTime, но в таком случае нужно все их просмотреть а это по времени достаточно долго и этот вариант мне не понравился.

Следующим шагом было исследовать html код страницы, и там я нашел интересную ссылку:

Далее я попробовал подставить эту ссылку в адресную строку браузера и в результате скачался файл master.m3u8 следующего содержания:

#EXTM3U #EXT-X-STREAM-INF:BANDWIDTH=768000,CODECS=»mp4a.40.2, avc1.640028″,RESOLUTION=640×360 https://vh-04.getcourse.ru/player/89cc32eeb182080b719abfc7f106aaaf/5b7008b4e8fab9852419a5c00e4aa618/media/360.m3u8?sid=sid&host=vh-04&cdn=1&cdn-second=0&integros-s3=1&akamai-defence=0&v=2:0:1:1 #EXT-X-STREAM-INF:BANDWIDTH=1024000,CODECS=»mp4a.40.2, avc1.640028″,RESOLUTION=853×480 https://vh-04.getcourse.ru/player/89cc32eeb182080b719abfc7f106aaaf/5b7008b4e8fab9852419a5c00e4aa618/media/480.m3u8?sid=sid&host=vh-04&cdn=1&cdn-second=0&integros-s3=1&akamai-defence=0&v=2:0:1:1 #EXT-X-STREAM-INF:BANDWIDTH=2560000,CODECS=»mp4a.40.2, avc1.640028″,RESOLUTION=1280×720 https://vh-04.getcourse.ru/player/89cc32eeb182080b719abfc7f106aaaf/5b7008b4e8fab9852419a5c00e4aa618/media/720.m3u8?sid=sid&host=vh-04&cdn=1&cdn-second=0&integros-s3=1&akamai-defence=0&v=2:0:1:1 #EXT-X-STREAM-INF:BANDWIDTH=4096000,CODECS=»mp4a.40.2, avc1.640028″,RESOLUTION=1920×1080 https://vh-04.getcourse.ru/player/89cc32eeb182080b719abfc7f106aaaf/5b7008b4e8fab9852419a5c00e4aa618/media/1080.m3u8?sid=sid&host=vh-04&cdn=1&cdn-second=0&integros-s3=1&akamai-defence=0&v=2:0:1:1

Как можно увидеть этот файл содержит еще набор ссылок, и судя по их названию они обозначают разрешение видео, которое загружается.

Я решил посмотреть что из себя представляет файл 720.m3u8, для этого я его скачал, перейдя по соответствующей ссылке:

#EXTM3U #EXT-X-TARGETDURATION:11 #EXT-X-ALLOW-CACHE:YES #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-PLAYLIST-TYPE:VOD #EXTINF:9.160000, https://getcourse-cdn-a1a5df3e.cdn.integros.com/ch/89cc32eeb182080b719abfc7f106aaaf/5b7008b4e8fab9852419a5c00e4aa618/720/0.ts?sid=sid&host=vh-04 #EXTINF:10.080000, https://getcourse-cdn-a1a5df3e.cdn.integros.com/ch/89cc32eeb182080b719abfc7f106aaaf/5b7008b4e8fab9852419a5c00e4aa618/720/1.ts?sid=sid&host=vh-04 #EXTINF:10.080000, https://getcourse-cdn-a1a5df3e.cdn.integros.com/ch/89cc32eeb182080b719abfc7f106aaaf/5b7008b4e8fab9852419a5c00e4aa618/720/2.ts?sid=sid&host=vh-04 #EXTINF:10.080000, … #EXTINF:8.800000, https://getcourse-cdn-a1a5df3e.cdn.integros.com/ch/89cc32eeb182080b719abfc7f106aaaf/5b7008b4e8fab9852419a5c00e4aa618/720/119.ts?sid=sid&host=vh-04 #EXT-X-ENDLIST

Если присмотреться внимательней то можно увидеть что все ссылки содержат *.ts, после того как я их скачал, оказалось что это как раз куски данного урока.

После небольшого поиска что-же такое m3u8 файл, я выяснил, что это формат для хранения плейлистов.

Теперь был вопрос как же его сохранить локально.

Бонус: лучший медиаплеер для воспроизведения высококачественного видео

Если вы хотите воспроизводить фильмы Blu-ray / DVD, вы можете дать Blu-ray Master Бесплатный проигрыватель Blu-ray попытка. С помощью этого программного обеспечения вы смотрите видео в популярных форматах, включая MP4, AVI, WMV, MTS, TS, FLV, MTS, M2TS, WKV, TRP, MXF, MPEG и т. Д. С исходным качеством.

  • 1. Воспроизведение многих видеоформатов и фильмов Blu-ray / DVD без потери качества.
  • 2. Дополнительные звуковые дорожки / субтитры и настраиваемые видеоэффекты.
  • 3. Обеспечьте полный, половинный, нормальный и многие другие режимы воспроизведения.
  • 4. Делайте снимки любимой сцены во время воспроизведения видео.
  • 5. Предложите удобный интерфейс, которым легко управлять.

Прекрасно

Рейтинг: 4.8 / 5 (179 голосов)

Альтернативное сохранение

После того как таким способом я сохранил пару видео, я начал думать как оптимизировать процесс. Тут меня посетила мысль, что можно просто попробовать скачать все эти маленькие файлы и объединить их в один.

Для этого я написал небольшую утилитку на Go, для обработки файла *.m3u8 и объединения всех маленьких кусков из него в один файл.

Алгоритм работы ее достаточно прост: сначала я перехожу по заданной ссылке на m3u8, затем построчно обхожу его и если строка содержит URL кусочка, я скачиваю его и результат сразу пишу в выходной файл.

Код который это делает следующий:

// received file from server resp, err := http.Get(inputUrl) if err != nil { log.Fatal(«Download error: «, err) } defer resp.Body.Close() // create output file f, err := os.Create(outputFile) if err != nil { log.Fatal(«Download error: «, err) } defer f.Close() // read server response line by line scanner := bufio.NewScanner(resp.Body) i := 0 for scanner.Scan() { l := scanner.Text() // if line contains url address if strings.HasPrefix(l, «http») { // download file part part, err := downloadFilePart(l) if err != nil { log.Fatal(«Download part error: «, err) } // write part to output file if _, err = f.Write(part); err != nil { log.Fatal(«Write part to output file: «, err) } log.Printf(«Download part %d\n», i) i++ } } if err := scanner.Err(); err != nil { log.Fatal(err) }

Функция downloadFilePart отвечает именно за скачивание файла и вывод его в байтовый массив:

func downloadFilePart(url string) ([]byte, error) { result := make([]byte, 0) resp, err := http.Get(url) if err != nil { return result, err } if result, err = ioutil.ReadAll(resp.Body); err != nil { return result, err } return result, err }

Такой метод полностью себя оправдал и оказался самый быстрый.

Как создать M3U плейлист самостоятельно

Помимо классический текстовых редакторов, для создания плейлиста в формате M3U можно воспользоваться специальными плеерами IPTV, в которых присутствует функция создания списков воспроизведения. Это намного лучше, чем создавать их ручным способом. Один из таких плееров — Simple TV. После установки программы откройте ее и зайдите в раздел «Плейлист», выберите из всплывающего списка «Поиск каналов». Задайте диапазон адресов для сканирования. В конце сканирования откроется список телеканалов. Установите флажки рядом с теми, которые хотите добавить, и нажмите на «Сохранить».

С чем едят формат M3U?

Данная статья призвана рассказать до деталей о тонкостях формата плейлиста M3U — стандарта де-факто для множества музыкальных плееров, как программных, так и железных.

Немного из истории

Формат этот появился в 1997 году, это был стандартный вид плейлиста для программы Winamp. Чем-то особенным этот формат назвать было нельзя — первая его версия была просто списком путей к музыкальным файлам, причем поддерживались как относительные пути, так и полные. Чуть позже появилась возможность использовать URL для задания пути в файлу. В качестве сепаратора использовались символы возврата каретки и перевода строки (/r/n). Также в качестве кодировки по стандарту использовалась Windows-1252. Также поддерживались однострочные комментарии вида # Some comment
Никаких заголовков для объявления того, что это именно M3U-файл, либо каких-то других не требовалось. Такие аскетичные плейлисты используются и по сей день — например с их помощью можно обмениваться ссылками на потоковое видео или аудио. Весь плейлист будет состоять из одной строки:

https://example.com:8000/audio

Однако, существует важный нюанс, идущий с тех времен и по сей день, — в конце последней строки тоже обязательно должны стоять символы /r/n.

Но все течет и изменяется. Cтало понятно, что одни только пути к файлам не могут удовлетворить потребностей как пользователя, так и девелопера. Все чаще комментарии некоторые плееры использовали для хранения своей служебной информации — в частности названия трека и его длины. И все это вылилось в следующую ступень эволюции формата M3U.

Extended M3U

Расширенный синтаксис формата M3U позволяет задать теги для файла, длительность и название плейлиста. Негусто, но большего и не нужно. Кроме того, ExtM3U обратно совместим с M3U, так как для разметки используются комментарии. Однако, требования для кодировки (а она должна быть Windows-1252) и для сепаратора (перевод строки только вместе с возвратом каретки) остались теми же. Но все для кодировки стали появляться послабления — при выбранной русской локализации многие плееры стали читать плейлист в Win-1251.
Итак, давайте рассмотрим на примере синтаксис ExtM3U.

#EXTM3U #PLAYLIST:Playlist Name #EXTINF:100,Track Title music/Track01.mp3 #EXTINF:456,Artist Name — Track Name C:/music/Track01.mp3 #EXTINF:456,Unix Full Pathname /home/usr/data/music/Track01.mp3 #EXTINF:-1,Some Radiostation https://example.com:8000/radio

  • #EXTM3U — заголовок M3U-файла. Говорит о том, что перед нами действительно плейлист M3U и что синтаксические конструкции формата ExtM3U поддерживаются в полной мере.

    На самом деле, как всегда, не все так радужно. Например, Mp3-плеер в телефоне Siemens CX75 прописывает эту директиву в начале плейлиста при его создании. Но вот остальную разметку ExtM3U он игнорирует. Он даже отказался переваривать относительные пути к файлам(!).

  • #PLAYLIST — название плейлиста. Например: «Песни о птичках». Не входит в официальную спецификацию и является самодеятельностью некоторых плееров.
  • #EXTINF — описание самого трека. Давайте на синтаксисе этой директивы остановимся чуть подробнее.
Директива EXTINF

Синтаксис:
#EXTINF:track_length sec,track_name\r\n path_to_file.ext Согласно синтаксису M3U, все параметры директивы описываются после двоеточия и разделяются запятыми.

  1. Длительность трека в секундах. Любое положительное число, включая ноль. -1 обозначает игнорирование длины трека.

    Некоторые плееры сразу ставят вместо длительности вопросительные знаки, некоторые все же пытаются определить ее самостоятельно. В случае удачи длина трека будет отображена.

  2. Название трека. Любая фраза в кодировке Windows.

    В случае, если трек имеет исполнителя и название, то в качестве сепаратора желательно использовать дефис (минус) — «-«.

  3. Путь к файлу. Обязательный параметр, отделяется от описания директивы \r\n.

    В случае указания относительного пути плеер будет искать файлы, «отталкиваясь» от папки, где лежит плейлист. При указании URL-адреса возможно указание любого протокола, соединение по которому поддерживает плеер (http(s), ftp, etc). Желательно использование http или специального протокола для потокового аудио/видео rtsp.

Но самый главный подводный камень — кодировка. Иногда, для указания, что дальше идут русские буквы в названии трека или пути используется символ US. Но utf-8 тут напрашивается сама собой. Итак, следующая эволюция M3U плейлистов — формат M3U8.

M3U8 — m3u в utf-8

Формат *.m3u8 получил преимущественное распространение на Unix-системах. Многие плееры автоматически распознают кодировку файла и не требуют обязательного присутствия восьмерки в расширении. Отличия от обычного формата m3u — это, конечно, кодировка utf-8 и возможность использовать в качестве сепаратора строк только перевод строки (\n).

Заключение

M3U — простой и перспективный формат плейлистов с тринадцатилетней историей. Он проще и понятнее плейлистов с xml-структурой, так как csv-подобные форматы для хранения маленьких структурированных объемов данных значительно удобнее. Многие производители техники отдают свое предпочтение m3u, и этот формат поддерживают все музыкальные плееры. Я надеюсь, что более подробное знакомство с этим форматов принес вам пользу в дальнейшем.

Литература

  • Спецификация формата m3u (англ.)
  • M3U — Википедия (рус.)

P.S. Все ссылки в тегах code следует читать с предваряющими их обозначениями протокола. Я не знаю, как сделать, чтобы хабр оставлял https:// в ссылках; очень странно, что в тегах code он вообще обрабатывает ссылки.

Рейтинг
( 2 оценки, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]