Показать сообщение отдельно
Старый 28.08.2011, 15:25   #25
MATPOC
Senior Member
 
Регистрация: 27.12.2010
Адрес: Междуреченск, Кемеровская обл.
Сообщений: 291
По умолчанию

Цитата:
Сообщение от MATPOC Посмотреть сообщение
Navi-X не проверяет getmimetype всех пунктов при открытии плейлиста. Просто надо плейлист сделать. Я писал простенький скрипт, который m3u плейлист конвертирует в плейлист Navi-X, но что-то не могу найти. Впрочем, там совсем просто. Могу на выходных набросать снова.
Набросал скрипт. Скрипт очень простой - берёт плейлист в формате m3u со стандартного ввода (stdin) или указать имя файла в качестве агрумента. Плейлист в формате navi-x выводит на стандартный вывод (stdout). Позиции плейлиста m3u должны задаваться парами строк вида:

#EXTINF:что угодно , Имя канала
proto://@233.32.240.236:1234

Где proto == udp или rtp, адрес обязательно из четырёх чисел, разделённых точками. То есть этот скрипт не подойдёт для конвертирования плейлистов http типа интернет радио или онлайн-видео.

Чтобы сохранить в файл нужно переназначить вывод:

Код:
./m3u2navi-x.pl iptv.m3u > iptv.plx
PHP код:
#!/usr/bin/perl -w

sub out_navix;

while (
defined($line = <>) ) {
    if (
$line =~ /#EXTINF:.*,\s*(.*)(\s*)/) {
    
$channel_name = $1;
    
$channel_name =~ s/\r+//;

        
if (defined($line = <>)
        and (
$line =~ '(udp|rtp)://@?(\d+\.\d+\.\d+\.\d+):(\d+)')) {
        
$mproto = $1$mgroup = $2$mport = $3;
        
$murl $line;
    }
    
out_navix;
    }
}

sub out_navix
{
    print 
"type=video\n";
    print 
"name=$channel_name\n";
    print 
"URL=$murl";
    print 
"#\n";



Сам код очень простой, но там есть все заготовки для вывода плейлиста в других форматах - в переменные $mproto, $mgroup, $mport из строки URL вычленяются соответственно протокол, мультикаст группа и порт. Так как для вывода в формат navi-x эти переменные не используются, то perl выдаёт предупреждения, которые можно игнорировать:

Цитата:
Name "main::mproto" used only once: possible typo at ./m3u2navi-x.pl line 12.
Name "main::mport" used only once: possible typo at ./m3u2navi-x.pl line 12.
Name "main::mgroup" used only once: possible typo at ./m3u2navi-x.pl line 12.
Вложения
Тип файла: zip m3u2navi-x.zip (440 байт, 582 просмотров)
__________________
Intel Core2 Duo, ASUS Nvidia GT220, GMC AVC M1, Linux // M8S+ Amlogic S805, Tronsmart Vega S96 Amlogic S912

Последний раз редактировалось MATPOC; 13.11.2011 в 22:25.
MATPOC вне форума   Ответить с цитированием