Преимущество UDP - это возможность одновременного просмотра ТВ на множестве устройств Для формирования списка каналов (ссылок) написал небольшой код на PERL Spoiler: Код на PERL Код: #!/usr/bin/perl -w use strict 'vars'; use Time::HiRes qw(sleep); use LWP::UserAgent; #use Compress::Raw::Zlib; use HTTP::Cookies; use LWP::ConnCache; use JSON; use utf8; binmode STDIN, ':utf8'; binmode STDOUT, ':utf8'; binmode STDERR, ':utf8'; use constant LOGIN_IDC_TV => '1234567'; use constant PASSW_IDC_TV => '123456'; my $browser = LWP::UserAgent->new(requests_redirectable => ['GET','HEAD','POST'], cookie_jar => {}, conn_cache => LWP::ConnCache->new); my @ns_headers = ( 'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36', 'Accept' => 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*', 'Accept-Charset' => 'utf-8', 'Accept-Language' => 'en-US', #'Accept-Encoding' => 'gzip' ); login_idc(); list_tv(); list_film(); sub login_idc{ my $response = $browser->post('http://iptvn.idc.md/',[ 'act' => 'login', 'code_login' => LOGIN_IDC_TV, 'code_pass' => PASSW_IDC_TV, 'softid' =>'web-ktv-001',], @ns_headers, 'Referer' => 'http://iptvn.idc.md/') or warn "Can't login http://iptvn.idc.md/: $@\n"; if ($response->is_success()) { $response->decoded_content } else {print "\nОшибка ответа на POST login"; exit} } sub list_tv{ #список каналов my ($rec_g,$rec_c,$hashRef,$hashRef_url); my $str_gr=''; my $data=''; my $id_ch=0; my $response = $browser->get('http://iptvn.idc.md/api/json/channel_list',@ns_headers,'Referer' => 'http://iptvn.idc.md/') or warn "Can't connect http://iptvn.idc.md/api/json/channel_list: $@\n"; if ($response->is_success()) { $data=$response->content; } else{ print "\nОшибка открытия http://iptvn.idc.md/api/json/channel_list"; exit 0 } $hashRef = JSON->new->decode($data); open my $FoNewlist,'>:encoding(UTF-8)','IPTV-list.xspf'; print $FoNewlist '<?xml version="1.0" encoding="UTF-8"?>',"\n", '<playlist xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/" version="1">',"\n", '<title>Плейлист</title>',"\n",'<trackList>',"\n"; foreach $rec_g (@{$hashRef->{'groups'}}){ print ${$rec_g}{'id'},' ',${$rec_g}{'name'},"\n"; $str_gr.='<vlc:node title="'.${$rec_g}{'name'}.'">'; foreach $rec_c (@{${$rec_g}{'channels'}}){ $response = $browser->get('http://iptvn.idc.md/api/json/get_url?cid='.${$rec_c}{'id'},@ns_headers,'Referer' => 'http://iptvn.idc.md/') or warn "Can't connect http://iptvn.idc.md/api/json/channel_list: $@\n"; if ($response->is_success()) { $data=$response->content } else {print "\nОшибка открытия http://iptvn.idc.md/api/json/channel_list"; exit 0} $hashRef_url = JSON->new->decode($data); print ' -',${$rec_c}{'id'},' ',${$rec_c}{'name'},' ',$hashRef_url->{'url'},"\n"; print $FoNewlist '<track>',"\n",'<location>',$hashRef_url->{'url'},'</location>',"\n", '<title>',${$rec_c}{'name'},'</title>',"\n", '<image>http://iptvn.idc.md//img/ico/',${$rec_c}{'id'},'.gif</image>',"\n", '<extension application="http://www.videolan.org/vlc/playlist/0">',"\n", '<vlc:id>',$id_ch,'</vlc:id>',"\n",'<vlc:option>network-caching=1000</vlc:option>',"\n",'</extension>',"\n",'</track>'; $str_gr.='<vlc:item tid="'.$id_ch++.'"/>'; sleep 0.5 } $str_gr.='</vlc:node>'; } print $FoNewlist '</trackList><extension application="http://www.videolan.org/vlc/playlist/0">', $str_gr,'</extension></playlist>'; close $FoNewlist; } sub list_film{ ## последнии 100 фильмов my ($rec_g,$rec_c,$hashRef,$hashRef_info,$hashRef_urlf,$tmp_str,$best_format); my $id_ch=0; my $id_ser; my $data=''; my $response = $browser->get('http://iptvn.idc.md/api/json/vod_list?type=last&nums=100',@ns_headers,'Referer' => 'http://iptvn.idc.md/') or warn "Can't connect http://iptvn.idc.md/api/json/vod_list?type=last: $@\n"; if ($response->is_success()) { $data=$response->content; } else { print "\nОшибка открытия http://iptvn.idc.md/api/json/vod_list?type=last&nums="; exit 0} $hashRef = JSON->new->decode($data); open my $FoNewlist,'>:encoding(UTF-8)','IPTV-films.xspf'; print $FoNewlist '<?xml version="1.0" encoding="UTF-8"?>',"\n"; print $FoNewlist '<playlist xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/" version="1">',"\n"; print $FoNewlist '<title>Плейлист</title>',"\n",'<trackList>',"\n"; foreach $rec_g (@{$hashRef->{'rows'}}){ print ${$rec_g}{'id'},' ',${$rec_g}{'name'},"\n"; $response = $browser->get('http://iptvn.idc.md/api/json/vod_info?id='.${$rec_g}{'id'},@ns_headers,'Referer' => 'http://iptvn.idc.md/') or warn "Can't connect http://iptvn.idc.md/api/json/vod_info: $@\n"; if ($response->is_success()) { $data=$response->content; } else {print "\nОшибка открытия http://iptvn.idc.md/api/json/vod_info?id="; exit 0} $hashRef_info = JSON->new->decode($data); if ($hashRef_info->{'film'}) { $best_format=$hashRef_info->{'film'}->{'videos'}->[-1]->{'format'}; foreach $rec_c (@{$hashRef_info->{'film'}->{'videos'}}){ if ($rec_c->{'format'} eq $best_format){ print '=',$rec_c->{'id'},"=\n"; $response = $browser->get('http://iptvn.idc.md/api/json/vod_geturl?fileid='.$rec_c->{'id'}.'&ad=1',@ns_headers,'Referer' => 'http://iptvn.idc.md/') or warn "Can't connect http://iptvn.idc.md/api/json/vod_geturl?fileid=: $@\n"; if($response->is_success()) { $data=$response->content; } else {print "\nОшибка открытия http://iptvn.idc.md/api/json/vod_geturl?fileid="; exit} $hashRef_urlf = JSON->new->decode($data); print "=",$hashRef_urlf->{'url'},"=\n"; #print JSON->new->encode($rec_c); exit; $tmp_str='<track>'."\n".'<location>'.$hashRef_urlf->{'url'}.'</location>'."\n"; $tmp_str.='<title>'.${$rec_g}{'name'}.' '.$rec_c->{'title'}.'</title>'."\n"; $tmp_str.='<annotation>'.${$rec_g}{'description'}.'</annotation>'."\n"; $tmp_str.='<image>http://iptvn.idc.md'.${$rec_g}{'poster'}.'</image>'."\n"; $tmp_str.='<extension application="http://www.videolan.org/vlc/playlist/0">'."\n"; $tmp_str.='<vlc:option>network-caching=1000</vlc:option>'."\n".'</extension>'."\n".'</track>'; $tmp_str=~s/&\w+;/ /g; print $FoNewlist $tmp_str; sleep 0.5; } } $id_ch++ } else{} } print $FoNewlist '</trackList></playlist>'; close $FoNewlist; } прикрепленный файл - это древовидный VLC плейлист
там в конце Демо-канал лучше сделать location>udp://@224.31.180.4:1234</location> <title>Тирасполь - Площадь Суворова.</title>
"Демо-канал" это раздел древовидного плейлиста раскрой "Spoiler: Для наглядности" из предыдущего моего поста P.S. Список Каналов из пакета «IPTV Standart» было бы неплохо, если бы обладатели пакета «IPTV Comfort» воспользовались скриптом и поделились с нами полным списком каналов
Чёто лыжи не едут. Либо не работет совсем, липо пару секунд показывает и всё, радио работает через раз, т.е. сразу ароде работает, но если поклацать каналы, то и оно перестаёт работать (. Ось ХР, VLC 2.1.3
Какой у Вас тип подключения, скорость (оптика, ADSL, тариф) ? есть вероятность, что множество потоков мультикаста просаживают трафик - не спишите щелкать каналы попробуйте настроить IGMP на версию 2 (мне помогло уменьшить время отклика)
Оптика Fttb за 112р, заявленая скорость 10 Mбит/с внешка и 60 локалка ИДК ТВ через их плеер (с логином и паролем) работает нормально. Ладно бы просадка скорости на HD каналах, но даже радио не хочет нормально работать. Видео, может несколько секунд показать и останавливается.
возможно на роутере igmp proxy не тянет несколько потоков, у меня модем в режиме моста (igmp proxy установлен на компе с прямым подключением), VLC 3.0.4 - 3 компа без задержек могут одновременно переключаться и принимать HD каналы
IGMP на версию 2 прописал, перезагрузил, роутер из цепочки извлёк (подключил напрямую) - без изменений, при первом включении - 2 слова и остановка, в дальнейшем даже 2х слов нет. Обновил VLC до 3,0,4 - без изменений
попробуйте отключить системный и антивирусный firewall Догадки (не проверял): возможно на разных тарифах («IPTV Light»,«IPTV Optimum»,«IPTV Standart», «IPTV Comfort») используется разные URL (IP) - надо сравнивать плейлисты или для разных тарифов используются разные фильтры IGMP пакетов - попробуйте каналы которые Вам доступны с «IPTV Light»
Проверил на втором ПК (без антивируса вообще), обновил кодаки - так же не работает ни один канал, даже "Первый ПМР", "ТСВ" и "Тирасполь - Площадь Суворова" IPTV «IPTV Optimum» в плеере от ИДК на пакете «Оптика Light» работает на обоих ПК Музыка в разделе "Интернет" самого плеера VLC работает без проблем.
У меня GPON, наверное есть отличие в подключении к IPTV - попробуйте самостоятельно сформировать плейлист используя скрипт PERL (или в личку скинте свой пароль и логин от IPTV - я Вам сформирую)
На GPON (huawei) все в порядке Spoiler: Для наглядности обновленный список каналов (GPON «IPTV Standart» древовидный VLC плейлист)
Позвонил в техподдержку, там что то настроили, но показывает на ПК только через IDC.TB с вводом логина и пасса, а через IP-TV Player ни в какую ни на компе, ни на смартфоне (кстать на смарте IDC.TB не работает почему то) ((( Что можно предпринять?
"подсмотреть" текущие ссылки на каналы как это сделать: В настройках IDC.ТВ плеера, -на вкладке настройка: указать полный путь к VLC плееру в поле Проигрыватель включить опцию Вкл. доп. настройки - на вкладке Допол. настройки в опции Модуль проигрывателя выбрать 1_vlc-playr.mod после настройки просмотор будет открываться в VLC плеере, в котором можно будет увидеть ссылку на выбранный канал в IDC.ТВ