Jump to content
Cesbo Community
  • Announcements

    • RadioSintetica

      News!   12/10/17

      If you have any questions related to installation and purchase, please check our documentation https://cesbo.com/en/astra/docs/ and terms of service https://cesbo.com/en/terms/
      Also, we have an official Telegram chat: https://t.me/cesbo_en  you can ask any questions or share your experience with colleagues Если у вас возникли вопросы по установке и покупке, ознакомьтесь пожалуйста с документацией по адресу https://cesbo.com/ru/astra/docs/ и условиями использования https://cesbo.com/ru/terms/
      Так же, обращаю внимание, что у нас есть официальный Телеграмм чат: https://t.me/cesbo_ru в котором можно задать вопросы - или поделиться своим опытом с коллегами
Akaki

Cherry EPG

Recommended Posts

On 14.04.2017 at 8:55 AM, dimukko said:

С LG наоборот никаких проблем, даже TOT/TDT подхватывает, кодировка правильная, быстро прогружает данные по каналам, в общем всё проходит идеально.

А вот с Самсунгами немного пришлось повозиться, из-за них скрипт перезапускаю с импортом данных каждые 10 минут. В обоих случаях использовал префикс "\x15" вместо "\x10\x00\x05", с ним как раз на всех устройствах чехарда из символов, позже постараюсь выяснить в чем же причина.

Добрый день. Столкнулся о следующей проблемой. На новых топовых теликах LG EPG идет без проблем. На дешевых моделях LG EPG отсутствует. Вещаю через cherryepg. EPG беру с epg.by.  Посмотрел что на входе - CSV в кодировке iso-8859-5.
В cherryepg.pl нашел такие строки:
 

# $short_descriptor->{codepage_prefix} = "\x15"; # for UTF-8
       
     my @descriptors;
     my $short_descriptor;
      $short_descriptor->{descriptor_tag} = 0x4d; #this is short event descriptor tag
      $short_descriptor->{language_code} = 'rus'; # ''
      $short_descriptor->{codepage_prefix} = "\x01"; # "\x10\x00\x5"
      $short_descriptor->{event_name} = $title;
     my $long_descriptor;
      $long_descriptor->{descriptor_tag} = 0x4e; #this is extendend event descriptor tag
      $long_descriptor->{language_code} = 'rus'; # ''
      $long_descriptor->{codepage_prefix} = "\x01"; # "\x10\x00\x5"
      $long_descriptor->{text} = $synopsis;
      push( @descriptors, $short_descriptor, $long_descriptor);
      $event->{descriptors} = \@descriptors;
      $epg->addEvent( $event);
    }
    close( $io);
    return 1;
}

Сталкивался ли кто-то с подобным поведением и нужно ли менять указанные строки на что-то иное?

Share this post


Link to post
Share on other sites

если проблема с кодировкой. то вместо программ будет пустое место, но время с и по должно отображаться.

если времени нет, то проблема в параметрах сети или во времени на ТВ

Share this post


Link to post
Share on other sites

hello dear

i want add content_descriptor to EIT stream made by cherry

i added this

        my $content_descriptor;
        $content_descriptor->{descriptor_tag} = 0x54;    # content descriptor
        my $nibble;
        $nibble->{content_nibble_level_1} =0;
        $nibble->{content_nibble_level_2} =0;
        $nibble->{user_byte} =0;
        push( @{$content_descriptor->{list}}, $nibble);
        push( @descriptors, $content_descriptor);

to cherryEPG.pl

but there is no 0x54 descriptor in output

so what is your idea?thanks

 

Share this post


Link to post
Share on other sites

Вы можете это добавить самостоятельно

нужно изменить файл Epg.pm  добавить в функцию _getDescriptorBin следующий код, примерно в 1344 строке.

    elsif ( $descriptor->{descriptor_tag} == 0x54 ) {

        # dvb_genre_descriptor
        my $descriptor_tag = 0x54;
        my $descriptor_length;

        my $substruct = '';
        foreach ( @{ $descriptor->{list} } ) {
            my $genre       = $_->{dvb};
            if (defined $genre) {
                $substruct .= pack( "CC", $genre, 0x0 );
            }
        }
        $descriptor_length = length($substruct);
        $struct = pack( "CCa*", $descriptor_tag, $descriptor_length, $substruct );
    }    

 

Share this post


Link to post
Share on other sites
2 hours ago, Mechanik said:

можно как-то из потока получить epg и затем подтянуть в cherryepg ?

можно. только без дополнительных скриптов не обойтись.

astra eit -> json -> mysql -> convert iso-8859-5 -> irbis (расширенная версия cherry)

такую схему пользую у оператора в юрмале (много местных каналов на латвийском в эфире). только вот с расширенной информацией беда. ни описаний, ни жанров, возраст ещё куда ни шло можно распарсить из title.

 

Share this post


Link to post
Share on other sites
1 hour ago, Mechanik said:

есть готовое решение скриптов по данной схеме ?

в природе не знаю. писал своё. будет час выложу.

Share this post


Link to post
Share on other sites

у меня на модулятор подается spts.

соответственно нужно как-то засунуть в таблицы, при этому текущие eit удалить ?!

Share this post


Link to post
Share on other sites
3 hours ago, Mechanik said:

у меня на модулятор подается spts.

коли астра на приёме, то достаточно в опциях инпута добавить no_eit.
а если сам модулятор не пропускает (или правильнее - не переназначает события согласно новым tsid-ам и sid-ам) epg, то в таких жалезках как люмината есть пропуск 18-го пида через мультиплекс, сформированного чери.
20NdN.png

Share this post


Link to post
Share on other sites
On 12/17/2017 at 10:21 AM, A4on.TV said:

Вы можете это добавить самостоятельно

нужно изменить файл Epg.pm  добавить в функцию _getDescriptorBin следующий код, примерно в 1344 строке.


    elsif ( $descriptor->{descriptor_tag} == 0x54 ) {

        # dvb_genre_descriptor
        my $descriptor_tag = 0x54;
        my $descriptor_length;

        my $substruct = '';
        foreach ( @{ $descriptor->{list} } ) {
            my $genre       = $_->{dvb};
            if (defined $genre) {
                $substruct .= pack( "CC", $genre, 0x0 );
            }
        }
        $descriptor_length = length($substruct);
        $struct = pack( "CCa*", $descriptor_tag, $descriptor_length, $substruct );
    }    

 

thanks very much it works

Share this post


Link to post
Share on other sites

Добрый день всем,

сервер CherryEPG обновляется раз в день,возникла проблема с приставкой world vision T62D и с некоторыми телевизорами EPG есть,  не отбрасывает что уже произошло в INFO и телегиде, то бишь показывает событие которые было утром, если обновлять каждые 5 минут CherryEpg.pl , проблема вроде бы купируется, но думаю это не правильно и наткнулся на такой пост, сам я мало понимаю в настройке подскажите как сделать?? напримере человек обьяснил как, но ссылка на скачивания не работает больше...может кто помочь с автозапуском playepg.sh? очень буду признателен за помощь, очень нужно)

UPDATE(24/11/2014). PROGRAMMA(dot)TV потеряла свою актуальность ввиду отсутствия программы на многих телеканалах. Гораздо удобнее стало использовать готовый файл CSV с сайта EPG.BY, или брать xmltv формирующийся со спутника на https://scanepg.ru

Но всё-же… Для примера рассмотрим скрипт для парсинга programma[dot]tv. Этот архив необходимо поместить в любую директорию веб-сервера. К примеру, у меня это /var/www/epg. В архиве два файла:

1. reload.php — выполняет три задачи: парсит программу для нужных каналов, формирует вывод в формате CSV, а также перезаписывает файл /usr/src/cherryEPG.pl
2. cherryEPG.tmp — шаблон файла cherryEPG.pl, в котором выражения <includeEITreq> и <includeIFreq> будут заменены на строки, сгенерированые в соответствии с параметрами вашей сети.

Автозапуск cherryEPG
В папке с cherryepg есть два шеллника:
parseepg.sh — запускаем каждый день, например ночью (в случае использования приобретённой у меня программы — раз в неделю — в воскресенье около 22-00)
playepg.sh — запускаем каждые 5 минут для обновления таблиц. Если не обновлять, программа всё-равно будет транслироваться, но некоторые телевизоры при нажатии на кнопку INFO будут показывать, что в настоящий момент идёт программа, шедшая в момент запуска вами скрипта playepg.sh.

Share this post


Link to post
Share on other sites

Спасибо за реализацию жанров.

У меня в программе передач код жанра в десятичном виде. 
0x4 0x3 football/soccer - 43
0xA 0x2 handicraft - 102

Подскажите как изменить код функции:  $substruct .= pack( "CC", $genre, 0x0 );
чтобы она не преобразовывала в бинарный вид мои десятичные значения.

В программирование слабоват. Прошу помощи.

 

Share this post


Link to post
Share on other sites

так как шестнадц. 0xA2 = 162 в десят., а не 102, как у вас, то проще создать массив соответствия. хэш.
создаете хэш

%hash = (
43 => 0x43,
102 => 0xA2,
и т.д.
);
и получать значение из хэша
$substruct .= pack( "CC", $hash{$genre}, 0x0 );

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×