Page 1 of 3

Обсуждение формат файла m3u

Posted: Tue Jan 29, 2008 12:03 pm
by Globus
Аналогично списку спутниковых транспондеров и эфирных частот, для ProgDVB требуется и список мультикаст-групп, вещаемых в IPTV сети. Этот список используется для поиска каналов (сканирования).

Для хранения списка мультикаст-групп ProgDVB использует универсальный формат M3U (MP3 URL).Этот формат плейлиста ввела компания Nullsoft для своего WinAmp. Популярность программы привела к тому, что ее многие особенности стали фе-факто стандартами. Не исключением является и формат M3U - он используется ныне в многих программах.

Итак, если вам надо откорректировать список каналов вашей IP-сети или создать новый список, не стоит отчаиваться, формат M3U очень прост.

В Базовом варианте это просто список мульткастов:

Code: Select all

udp://@;239.1.0.9:1234
udp://@;239.1.0.10:1234
udp://@;239.1.0.14:1234
udp://@;239.1.0.2:1234
где в каждой строчке - запись мульткаст-группы:
- udp://@; - префикс, описывающий протокол передачи (IP/UDP)
- 239.1.0.2 - IP-адрес мультикаст-группы
- :1234 - порт мультикаст группы.

В Расширенном варианте список чуть сложнее:

Code: Select all

#EXTM3U
#EXTINF:0,ОРТ
udp://@;239.1.0.9:1234
#EXTINF:0,РТР
udp://@;239.1.0.10:1234
где:
#EXTM3U - префикс m3u файла.

каждая запись состоит из двух строк:
#EXTINF:0,ОРТ
udp://@;239.1.0.9:1234


где:
- #EXTINF: заголовок тега (EXTINF - Extended Information field), заканчивается символом :
- 0 - время воспроизведения. Актуально для списка файлов. В нашем случае всегда 0 (время неограничено)
- ОРТ - название канала, как оно будет отображатся программой.

и

- udp://@;239.1.0.9:1234 - характеристика мультикаст-группы, аналогично Базовому варианту.

ProgDVB хранит файлы M3U в каталоге \ProgDVB\Transponders\IPTV\. Сами файлы создаются и редактируются в любом текстотвом редакторе, например в Блокноте. Вновь созданный файл достаточно скопировать в соответствующий каталог - ProgDVB загружает список при старте.

Posted: Mon Sep 28, 2009 7:07 pm
by boss911
Мой провайдер внутри сети предоставляет услугу IP TV, список каналов (*.m3u) выкладывает на своем сервере и очень часто его обновляет.

Я к чему веду, что в ProgDVB нельзя указать конкретный m3u файл (список каналов), указать на конкретный источник, где он находится. Не удобность в том, что каждый раз мне приходится скачивать список каналов у своего провайдера, помещать его в "Transponders\IPTV" и заново сканировать каналы.

Нельзя ли сделать так, что бы можно было указывать на локальное или внешне (url) местонахождения m3u файла, да бы не беспокоится о том, что список каналов не актуальный уже, так как мой провайдер изменил каналы и соответственно представил их в новом m3u файле? Такое удобство реализовано в IP-TV Player, там можно указать любой путь.

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

.

Posted: Mon Sep 28, 2009 7:22 pm
by Prog
1. Да, такая проблема есть. И я ещё в ближайшем будущем исправлю.

2. С кирилицей сложнее. Не так просто понять в каком формате файл. Пока дежурный совет перед сканированием конвертнуть m3u в unicode или utf8. Save As в notepad например. Из этих формат всё читается без проблем.

Re: .

Posted: Mon Sep 28, 2009 8:19 pm
by boss911
Prog

1. Плиз.

2. Да, конвертнул в unicode - помогло. Точно мой провайдер предоставляет список не в unicode и не в utf-8. Я узнал (100%), это простой ANSI, посему нужна поддержка и для этой кодировки. Сделай, плиз.

3. А еще очень хочется, что бы ProgDVB напрямую брал список каналов с m3u файла, то есть без сканирования. Понимаешь, каждый раз, после обновления m3u файла, сканировать заново список из нескольких десятков каналов, а их скоро будет за сотню, это очень долгий и нудный процесс. Я не много не понимаю, зачем что-то сканировать, если ты программе уже предоставляешь готовый список каналов, вот пусть она его и напрямую использует, как готовый список каналов. Короче, сканирование можно как-то убрать, что бы обновлять список непосредственно с m3u файла, именно обновлять с него, а не сканировать? Опять же, IP-TV Player ничего не сканирует, ему указал m3u файл, нажал "обновить" и он за секунду у себя построил на основании этого списка свой список каналов, а при старте программы, она этот список обновляет на основании все того же m3u файла, который находится на сервере моего провайдера. В общем, как видишь, в IP-TV Player все автоматизировано, только указал URL на m3u файл и он все далее сам делает, ни какого сканирования, за секунду все обновил и перестроил свой внутренний список каналов на основании указанного файла, все это за секунду происходит.

.

Posted: Mon Sep 28, 2009 8:32 pm
by Prog
2. Проблема в том что ansi это не кодировка. То есть мне перед открытием файла надо знать кодировку. В вашем случае скорее всего 1251, а может и нет. А у немцев точно 1252.

3. ProgDVB это сканирует для того что бы не сканировать перед переключением каналов. Движок может отрывать ссылки на iptv, но это будет на секунду дольше (на время сканирования). Ну и кроме того тут много разнородных типов каналов и не удобно для IPTV использовать m3u, а для других внутренний формат.
С другой стороны сканировать должен относительно быстро если выключено сканирование SDT.

Re: .

Posted: Mon Sep 28, 2009 9:08 pm
by boss911
Prog

2. Да, это 1251 (лично проверил), так что, можно рассчитывать, что будет поддержка 1251 ?

3. Эх, жалко, а то в IP-TV Player это все так шустро происходит, список формируется прямо на основании m3u. Включение или отключение SDT, в моем случае, ни как не влияет на скорость сканирования, на каждый канал, при сканировании, тратится около 7 секунд времени. Не трудно посчитать, сколько времени уйдет на сканирование, к примеру, 60-ти каналов, это притом, что провайдер очень часто меняет каналы, то есть очень часто приходится сканировать, этот долгий процесс очень утомляет. Может тогда как-то сделать, что бы ProgDVB проверял, не изменился ли список m3u, если изменился, то выдает сообщение, что, мол, список изменился, не желаете ли просканировать/обновить заново каналы? А то, к примеру, провайдер изменит список каналов, как у меня это часто бывает, а я сижу и ничего не знаю, что там появились новые каналы, так как список моих каналов в ProgDVB не рассчитан на автоматическое обновление каналов из m3u, как в IP-TV Player. Надо что-то с этим решать, дабы программа хоть как-то могла подавать нам сигнал, что бы мы видели, ага, изменился список.

.

Posted: Mon Sep 28, 2009 9:15 pm
by Prog
2. Да нет проблем прочитать файл из 1251. Проблема узнать что там именно 1251. Когда будет возможность линк для скачивания то там же можно будет выбрать и кодировку. А для файла её выбирать не очень то удобно.

3. Ну какое то оповещение непременно будет.

Re: .

Posted: Mon Sep 28, 2009 10:38 pm
by boss911
Prog wrote:Проблема узнать что там именно 1251.
А зачем узнавать, если с Unicode и UTF-8 оно распознает кириллицу, то нужно и для 1251 реализовать поддержку. То есть, ничего не нужно узнавать, просто заточить поддержку кириллицы для конкретных кодировок, в данном случае еще сделать и для 1251.

.

Posted: Tue Sep 29, 2009 6:58 am
by Prog
Вы меня читайте или нет? откуда я знаю 1252 в этом файле или 1251 например? Unicode/UTF8 современные форматы теста, которые прекрасно определяются и могут содержать любые национальные символы. У вас просто 8 бит тестовый файл, в таком виде в каком он был DOS а может и раньше. Там вариантов только Русских кодировок штук 5 и определить какая именно не возможно.

Re: .

Posted: Tue Sep 29, 2009 2:16 pm
by boss911
Prog

Тогда уж, плиз, сделайте побыстрее:
Prog wrote:Когда будет возможность линк для скачивания то там же можно будет выбрать и кодировку.
Prog wrote:Ну какое то оповещение непременно будет.
Короче, три вещи: указывать линк, выбор кодировки и оповещение. С нетерпением жду.

Prog, не забудьте мой разговор и про JTV, что она является в доработке, об этом я много говорил тут в соседней теме, без EPG очень туго.

.

Posted: Tue Sep 29, 2009 2:23 pm
by Prog
Прямо в следующей версии врятли будет, но уже скоро. Давно в план листе стоит...

Re: .

Posted: Tue Sep 29, 2009 10:53 pm
by boss911
Prog

Сделай, пожалуйста, сортировку каналов по транслодерам. Я хочу добиться, что список каналов в ProgDVB разместился так, как определено в m3u файле, а там обычно список идет по очереди транслодеров:
#EXTM3U
#EXTINF:0,ОРТ
udp://@;239.1.0.9:1234
#EXTINF:0,РТР
udp://@;239.1.0.10:1234
#EXTINF:0,НТВ
udp://@;239.1.0.11:1234
- - - - - - - - - -
Сейчас я это не могу сделать, после сканирования список каналов выстраивается в разброс как-то, мне приходится несколько десятков каналов вручную сортировать\перемещать, сравнивая со списком m3u. Как я уже сказал выше, мой провайдер часто обновляет список каналов, посему мне частенько приходится все пересканировать, а потом снова все каналы расставлять по списку m3u.

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

Я просто уже задолбался с ручной расстановкой (размещением) каналов, расставляя их каждый раз по списку в m3u.

.

Posted: Wed Sep 30, 2009 7:41 am
by Prog
А что такого ценного в этой последовательности?

Re: .

Posted: Wed Sep 30, 2009 2:42 pm
by boss911
Prog

Я же говорю, что я привык к той последовательности каналов, который мне выдает мой провайдер в m3u файле, а последовательность там по транслодерам. Посему хочется иметь сортировку по транслодерам, а так же при сканировании выбирать или что бы по умолчанию было, что бы список формировался так, как он идет в m3u файле. Вообще, это было бы правильно, так как m3u файл это плейлист, в котором уже все рассортировано и прописано, а значит нужно следовать правилам этого плейлиста, а ProgDVB его нарушает, сортирует как ему удобно, а не так, как идет изначально в плейлисте. По-моему я все популярно объяснил и обосновал, все по существу, что нужно и логично было бы иметь (простые вещи).

.

Posted: Wed Sep 30, 2009 3:06 pm
by Prog
Просто вы буквально пару постов назад писали что этот лист часто меняется.

В ProgDVB нет понятие "сортировки как в листе". Но можно наверное номера каналам дать и сортировать по именам.