Плейлисты формата M3U и M3U8 для IPTV — что это и зачем нужно?

Формат M3U и его разновидность M3U8 — это плейлисты, содержащие в себе техническую информацию о медиафайлах (аудио и/или видео), которые будут воспроизведены мультимедиа-проигрывателем. Хотя данный формат появился довольно давно (в первые годы существования аудиоплеера Winamp), массово распространяться он начал относительно недавно — вследствие увеличения скорости доступа в интернет и развития технологий потоковой передачи медиаконтента.

Что представляют собой плейлисты формата M3U и M3U8? Где они используются? Как их открыть? В чем их отличие форматов M3U и M3U8? Как создавать плейлисты M3U и M3U8? Постараемся ответить на эти вопросы максимально простым языком.

Что такое M3U и M3U8 плейлисты?

Технически, данные плейлисты представляют собой обыкновенный текстовый файл. Все занесенные в него данные, следовательно, также являются простым текстом. Это говорит о том, что файлы формата M3U и M3U8 можно открывать, редактировать и создавать при помощи любого текстового редактора, "понимающего" формат TXT. К таким редакторам относится стандартное приложение Windows — «Блокнот» (Notepad).

Кроме того, что плейлисты рассматриваемого формата являются текстовыми файлами, они также характеризуются специфическим содержанием. Чтобы мультимедиа-проигрыватель смог нормально работать с M3U/M3U8-файлами, последние необходимо заполнять с соблюдением определенных правил.

Формат M3U

Где используются плейлисты M3U/M3U8?

Первоначально файлы формата M3U служили для создания списков воспроизведения музыкальных композиций в аудиоплеере Winamp. Их и сегодня используют с той же целью, но реже. В настоящее время M3U и M3U8-плейлисты используются преимущественно для создания списков воспроизведения онлайн-видео и интернет-телеканалов (IPTV).

Полностью технологию IPTV мы рассматривать не будем. Скажем лишь то, что предназначена она для вещания телеканалов в сети интернет в режиме реального времени. И чтобы мультимедиа-проигрыватель смог подключиться к такому ТВ-каналу (либо онлайн-видео) и затем воспроизвести его, ему потребуется URL-ссылка (адрес в интернете) на данный телеканал или потоковое видео. И для хранения таких ссылок, а также некоторых других данных, как раз и используются M3U/M3U8-плейлисты.

Кстати, плейлисты, использующиеся для просмотра онлайн-телеканалов, принято именовать как «IPTV-плейлисты».

Где взять M3U/M3U8-плейлисты для IPTV?

Самый простой способ — скачать в интернете. Многие современные сайты посвящены тематике IPTV. Администраторами таких сайтов (либо пользователями тематических форумов, блогов, групп в соцсетях и т.д.) выкладываются ссылки на скачивание IPTV-плейлистов, как в M3U, так и M3U8 форматах. Их можно сразу же добавить в видеоплеер (поддерживающий воспроизведение IPTV-каналов) либо сначала отредактировать с целью расширения/сокращения списка воспроизведения по своему вкусу.

IPTV-плейлисты можно создать самостоятельно (данном случае понимается создание M3U/M3U8-файла на жестком диске). Сделать это просто:

Создайте на жестком диске обычный текстовый документ:

m3u

Измените расширение созданного документа с TXT на M3U или M3U8.

M3U или M3U8

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

Как открывать файлы M3U и M3U8?

Откроем созданный/скачанный плейлист в приложении «Блокнот». Хотя в нем нет отдельной функции по открытию и работе с M3U/M3U8-файлами, их все равно можно добавить в редактор. Сделать это можно различными способами:

Два раза кликнуть по M3U/M3U8-файлу, а затем выбрать программу «Блокнот» в окне выбора приложения.

M3U и M3U8

Кликнуть правой кнопкой мыши по M3U/M3U8-файлу, выбрать в контекстном меню пункт «Открыть с помощью», затем «Блокнот».

M3U и M3U8

Сменить расширение файла M3U/M3U8 на TXT, а затем просто кликнуть два раза по файлу, и тот будет открыт в «Блокноте».

Изменить расширение файла

Запустить программу «Блокнот», открыть в ней меню «Файл, затем пункт «Открыть…». В диалоговом окне «Блокнота» установить в выпадающем меню снизу справа «Все файлы (*.*)», а затем выбрать плейлист, сохраненный на жестком диске.

M3U

После открытия плейлиста вы увидите его содержимое, которое будет выглядеть примерно следующим образом:

M3U

Мы еще вернемся к описанию содержимого плейлистов и рассмотрим процесс их наполнения нужной информацией.

В чем различие между M3U и M3U8 форматами плейлистов?

Основное и единственное различие между данными форматами заключается в том, что в M3U-файлах используется кодировка символов Latin-1, а в M3U8 — кодировка UTF-8. Но если говорить простыми словами, то это можно объяснить следующим образом:

Плейлисты M3U не поддерживают никаких других символов (букв, цифр и т.д.), кроме как тех, что присутствуют в западноевропейских языках. В число ограничений также вошел и русский язык.

Если в M3U-плейлисте ввести название телеканала, фильма, музыкальной композиции русскими буквами, то в видеоплеере они примут вид, т.н. «кракозябров»:

Неправильная кодировка

То же касается и путей/ссылок к медиафайлам и их собственных имен. Медиаплеер попросту не сможет найти файл для проигрывания в сети/на диске, если ссылка/путь до него или имя содержат русские (нелатинские) символы.

Именно поэтому и был создан формат M3U8. Т.к. в нем используется кодировка символов UTF-8, то он может содержать русские (и не только) буквы.

Как правильно заполнять M3U/M3U8-плейлисты?

В M3U/M3U8-плейлистах, как минимум, присутствуют 3 строки текста:

  1. «#EXTM3U» — самая первая строка (заголовок), описывающая формат текстового файла. В данном случае она означает, что перед нами M3U-формат. Данный атрибут используется всего один раз в самом начале.
  2. «#EXTINF:» — строка, начинающаяся с данного атрибута, используется для технического описания каждого медиафайла в плейлисте: длительность, название телеканала/потокового видео/музыкальной композиции, исполнитель, логотип и т.д.
  3. И сам URL-адрес медиафайла в интернете (но можно указывать и локальный путь к файлу, хранящемуся на жестком диске).

Вот пример самого простого IPTV-плейлиста, состоящего из двух элементов (описание + ссылка на телеканал):

#EXTM3U

#EXTINF:-1,Discovery Channel

http://78.157.230.19/streaming/discovery/364/gpu_tvrecw/playlist.m3u8

#EXTINF:-1,National Geographic

http://178.124.183.5/hls/CH_NATGEO/variant.m3u8?version=2

Обратите внимание на часть строки «-1», которая стоит сразу после «#EXTINF:». Она означает, что продолжительность медиафайла неизвестна. В IPTV-плейлистах всегда используется значение «-1» или «0», т.к. онлайн-телеканал является потоковым видео, не имеющим явного окончания.

С «Discovery Channel» и «National Geographic» все итак понятно — это названия телеканалов. В видеопроигрывателе (в данном случае — IPTV-плеере) они будут отображены так, как написано в этой части строки.

Касательно ссылок. Они могут иметь различное написание:

  • Явно указывать на файл, т.е. оканчиваться именем воспроизводимого файла. Ссылки формата: «http://путь/video.mp4».
  • Указывать на видеопоток. Это ссылки формата: «http://путь:8080». Как видно, в таких ссылках присутствует номер сетевого порта, по которому проигрыватель будет обращаться к серверу. В них могут присутствовать и другие параметры, например, формат потока данных (все зависит от способа вещания онлайн-видео/телеканала в сети).
  • Указывать на другие плейлисты. Ссылки формата: «http://путь/playlist.m3u» или «http://путь/playlist.m3u?version=2» (с указанием версии плейлиста). Именно такие ссылки использованы в нашем примере выше. Они, наравне со ссылками предыдущего формата, используются для создания IPTV-плейлистов.

В IPTV-плейлистах также могут использоваться дополнительные необязательные атрибуты. Вот три наиболее востребованных атрибута:

  • tvg-logo = "ссылка на изображение". При помощи этого атрибута задается иконка для воспроизводимого телеканала, которая будет отображена рядом с его названием в IPTV-плеере.
  • tvg-name = "идентификатор телепрограммы". Данный атрибут служит для отображения программы передач воспроизводимого телеканала, если таковая была предоставлена вещающей телекомпанией.
  • tvg-shift = "часы" (-23 … +23). Атрибут, используемый для коррекции времени отображаемой телепрограммы (используется только вместе с «tvg-name»).

Дополнительные атрибуты заносятся в строку «#EXTINF:» сразу после указания продолжительности медиафайла через пробел, например:

#EXTINF:-1 tvg-logo =" http://путь/img.jpg" tvg-name=" Discovery" tvg-shift="-2",Discovery Channel

Скачать КомбоПлеер