таблица EIT (EPG)

Здесь обсуждаются продукты для цифрового вещания (работа с Multi Program Transport Stream в форматах ASI и/или IP) с возможностью врезки рекламы и наложения титров.

Модераторы: PR, vd

Закрыто
Энди
Сообщения: 74
Зарегистрирован: 20 апр 2009 16:42

Сообщение Энди »

Time Date Table содержит текущую дату и время и используется для установки часов в ресивере. Передаётся она далеко не во всех мультиплексированных потоках, а иногда вместо времени в UTC содержит местное время вещателя, что сбивает с толку ресивер и его пользователя, и не позволяет вовремя включить запись передачи.

Time Offset Table содержит информацию о том, когда часы надо будет переводить на летнее и зимнее время, и каково при этом будет смещение (offset) относительно UTC. Эта таблица также не является обязательной.

Conditional Access Table содержит данные о системах условного доступа, используемых в потоке, и PID'ы, с которыми передаётся некоторая информация этих систем. В одном мультиплексированном потоке может использоваться одновременно несколько разных систем условного доступа. CAT не является обязательной даже при использовании условного доступа в программах потока.

Код: Выделить всё

Time Date Table (TDT):
------------------------------------------------------------
SECT-Packet: 00000001   PID: 20 (0x0014), Length: 8 (0x0008)
------------------------------------------------------------

PID:  20 (0x0014)  [= assigned for: DVB Time and Date Table (TDT), Time Offset Table (TOT)]
Guess table from table id...
TDT-decoding....
Table_ID: 112 (0x70)  [= Time Date Table (TDT)]
section_syntax_indicator: 0 (0x00)
Section_length: 5 (0x0005)
UTC_time: 0xd551062106 [= 2008-05-23 06:21:06 (UTC)]
==========================================================


Time Offset Table (TOT):
------------------------------------------------------------
SECT-Packet: 00000001   PID: 20 (0x0014), Length: 107 (0x006b)
------------------------------------------------------------

PID:  20 (0x0014)  [= assigned for: DVB Time and Date Table (TDT), Time Offset Table (TOT)]
Guess table from table id...
TOT-decoding....
Table_ID: 115 (0x73)  [= Time Offset Table (TOT)]
section_syntax_indicator: 0 (0x00)
Section_length: 104 (0x0068)
UTC_time: 0xd551061924 [= 2008-05-23 06:19:24 (UTC)]
Descriptors_loop_length: 93 (0x005d)

        DVB-DescriptorTag: 88 (0x58)  [= local_time_offset_descriptor]
        Descriptor_length: 91 (0x5b)
            Country_code:  GBR
            Country_region_ID: 0 (0x00)
            local_time_offset_polarity: 0  (= plus to UTC)
            Local_time_offset: 01:00
            Time_of_change: 0xd5ed010000 [= 2008-10-26 01:00:00 (UTC)]
            Next_time_offset: 00:00 

            Country_code:  GBR
            Country_region_ID: 0 (0x00)
            local_time_offset_polarity: 0  (= plus to UTC)
            Local_time_offset: 00:00
            Time_of_change: 0xd687010000 [= 2009-03-29 01:00:00 (UTC)]
            Next_time_offset: 01:00 

            Country_code:  GBR
            Country_region_ID: 0 (0x00)
            local_time_offset_polarity: 0  (= plus to UTC)
            Local_time_offset: 01:00
            Time_of_change: 0xd759010000 [= 2009-10-25 01:00:00 (UTC)]
            Next_time_offset: 00:00 

            Country_code:  GBR
            Country_region_ID: 0 (0x00)
            local_time_offset_polarity: 0  (= plus to UTC)
            Local_time_offset: 00:00
            Time_of_change: 0xd7f3010000 [= 2010-03-28 01:00:00 (UTC)]
            Next_time_offset: 01:00 

            Country_code:  GBR
            Country_region_ID: 0 (0x00)
            local_time_offset_polarity: 0  (= plus to UTC)
            Local_time_offset: 01:00
            Time_of_change: 0xd8cc010000 [= 2010-10-31 01:00:00 (UTC)]
            Next_time_offset: 00:00 

            Country_code:  GBR
            Country_region_ID: 0 (0x00)
            local_time_offset_polarity: 0  (= plus to UTC)
            Local_time_offset: 00:00
            Time_of_change: 0xd95f010000 [= 2011-03-27 01:00:00 (UTC)]
            Next_time_offset: 01:00 

            Country_code:  GBR
            Country_region_ID: 0 (0x00)
            local_time_offset_polarity: 0  (= plus to UTC)
            Local_time_offset: 01:00
            Time_of_change: 0xda38010000 [= 2011-10-30 01:00:00 (UTC)]
            Next_time_offset: 00:00 


CRC: 4183159859 (0xf955f433)
==========================================================


Идентификаторы таблиц: 0x70 для TDT, 0x73 для TOT.

Установка времени в ресивере не является особо важной задачей, программы вполне можно показывать и так. Поэтому TDT и TOT обычно передаются сравнительно редко - примерно раз в минуту. 

Для передачи TDT и TOT в EN 300 468 предусмотрен фиксированный PID 0x0014. 

Conditional Access Table (CAT):
------------------------------------------------------------
SECT-Packet: 00000008   PID: 1 (0x0001), Length: 18 (0x0012)
------------------------------------------------------------

PID:  1 (0x0001)  [= assigned for: ISO 13818-1 Conditional Access Table (CAT)]
Guess table from table id...
CAT-decoding....
Table_ID: 1 (0x01)  [= Conditional Access Table (CAT)]
section_syntax_indicator: 1 (0x01)
Section_length: 15 (0x000f)
Version_number: 2 (0x02)
current_next_indicator: 1 (0x01)  [= valid now]
Section_number: 0 (0x00)
Last_Section_number: 0 (0x00)

        MPEG-DescriptorTag: 9 (0x09)  [= CA_descriptor]
        Descriptor_length: 4 (0x04)
        CA_system_ID: 2816 (0x0b00)  [= Norwegian Telekom (Conax)]
        CA_PID: 192 (0x00c0)

CRC: 559554085 (0x215a1e25)
==========================================================
Идентификатор таблицы: 0x01.

В данном случае в CAT описана одна система условного доступа с идентификатором 0x0b00, который выделен компании Norwegian Telekom и обозначает систему условного доступа Conax. Данные от этой системы условного доступа передаются с PID'ом 192.

Описатели условного доступа в CAT совершенно такие же по структуре, как и в PMT, но PIDы в них указаны разные: в PMT указывается PID потока ECM (Entitlement Control Messages), который обычно индивидуален для каждой программы, а в CAT - PID потока EMM (Entitlement Management Messages), единого на весь мультиплексированный поток.

В ISO 13818 для CAT установлен фиксированный PID 0x0001.
Энди
Сообщения: 74
Зарегистрирован: 20 апр 2009 16:42

Сообщение Энди »

А вообще тут много информации
Игорь Таранцев
Сообщения: 493
Зарегистрирован: 04 янв 2004 12:45
Откуда: СофтЛаб-НСК

Сообщение Игорь Таранцев »

Но главное с чего то начать!!
Извиняюсь, но я сразу хочу заметить, что эта фраза меня категорически не устраивает. Потому-что мы потратим силы, что-то сделаем, а пользователи этим пользоваться все равно не смогут!!! Очевидно, что к серьезной переделке алгоритма сбора данных разработчик сможет вернуться не скоро - только когда закончит плановые задачи. Поскольку планы всегда формируются вперед и надолго (не меньше 3 месяцев), то и переделать все можно будет только через 3 месяца. Поэтому мне проще пообсуждать 3 месяца до нормального понимания задачи, а не тратить время на гарантировано нерабочий вариант.
Значения времени в формируемом EPG должны автоматом корректироваться в Гринвич - 0 , так как выставлять этот часовой пояс на вещательной машине было бы не совсем правильно.
Да, конечно, в таблице TDT в транспортном потоке время по Гринвичу. И времена в таблице EIT в транспортном потоке тоже будут по Гринвичу. Соответственно, в формируемой на клиентском приемнике EPG времена тоже будут по Гринвичу. И уже сам приемник будет переводить это время в местное (в том числе в летнее или в зимнее).
Вот образец EIT таблицы
Спасибо, это тоже хорошо для примера, но меня интересует не то, как формировать в наших приложениях описанные в стандарте DVB таблицы. Меня очень волнует формат текстового файла, который будете заполнять ВЫ - пользователи! Ведь именно ваши операторы будут наколачивать текст программы передач на 3-6 дней вперед, проставлять даты, времена, длительности. И, соответственно, делать ошибки, которые нам прийдется как-то исправлять (или не исправлять).

Как я понял из обсуждения, описанный мной алгоритм формирования "программы передач" (EPG) в "чистом виде" не устраивает. Обязательно должна быть возможность брать программу передач из "какого-то" текствого файла. Тогда вопрос: А зачем надо пытаться брать какие-либо данные из OnAir-а, если все равно текстовый файлик с этой-же информацией ОБЯЗАН существовать?!?

Теперь про формат этого текстового файла с программой передач. Устроит ли такой формат - текстовый файл с расширением .txt или .csv, состоящий из четырех колонок, разделенных символом табуляции. В первой колонке указывается дата, во второй - время начала передачи, в третьей - название передачи, в четвертой - описание передачи (может отсутствовать). Такой файл можно поднять, отредактировать и сохранить программой MSExcel (или Calc из OpenOffice).
Пример файла:

Код: Выделить всё

Date    Time    Name    Description
2010-11-26    08:00    Новости    Новосибирские новости "с утра пораньше"
2010-11-26    08:30    "С добрым утром"    Передачи с вашими любимыми ведущими
2010-11-26    11:05    Сериал "Ваня"    15-я серия сериала для молодых мам 
Наверное, время в файле лучше указывать в местном времени.
В настройках графа задается имя файла и язык кодировки в таблицу EIT в транспортном потоке. Сам файл может быть в кодировке Unicode или в простой кодировке ASCII (но тогда обязательно на языке операционной системы, чтобы при конвертации в Unicode с настройками "по умолчанию" система не ошиблась).
Граф будет регулярно считывать весь текст из указанного файла, переводить время в Гринвич и отправлять в транспортный поток.
Сразу вижу только один недостаток описанного выше метода формирования "программы передач" - нет никакой корреляции данных в текстовом файле с тем, что реально играется в программе OnAir. Может оно и не плохо? Реализация такого алгоритма заметно проще предлагаемого ранее анализа текущего расписания в программе OnAir (меня это очень радует :)).

И, наконец, про URL.
А можно уточнить, что нужно брать из URL? В каком формате на какой-то страничке должны быть данные? Можете дать ссылку на пример странички с программой передач, которую вы будете формировать и отдавать нашему приложению? Я бы проанализировал формат данных на этой страничке и оценил, насколько просто или сложно формировать из содержимого этой странички таблицы EIT для транспортного потока.
vd
Сообщения: 2311
Зарегистрирован: 05 мар 2003 19:21

Сообщение vd »

Энди, информации в сети вообще много.

Нас интересует больше не то, как сформировать таблицу (это мы уже и сами нашли в разных источниках с помощью google). Волнует, из чего брать данные для таблицы. Наша цель - не собрать всю существующую информацию в кучу, а выдать решение, которое будет устраивать всех по максимуму. И чтобы не пришлось потом все 10 раз переделывать, хотим заранее понять, что устроит пользователей.

Как видите, задача не такая уж и элементарная, поэтому приходится задавать много наводящих вопросов и уточнять много деталей.
Энди
Сообщения: 74
Зарегистрирован: 20 апр 2009 16:42

Сообщение Энди »

Хорошо, понял.

Для меня важна автоматизация, чтобы информация бралась полностью из ОнЭйр, но так как мы забиваем расписание иногда только на 6 часов вперед, то для зрителя это будет не совсем удобно, поэтому отдельный файлик с полным расписание вполне устраивает, и его формат. Может стоит сделать имя файла датой содержащегося расписания, для того чтобы можно было создать их на неделю вперед, а граф потом выбирал с текущей датой.
1076
Сообщения: 114
Зарегистрирован: 28 май 2010 14:12

Сообщение 1076 »

Игорь Таранцев писал(а): И, наконец, про URL.
А можно уточнить, что нужно брать из URL? В каком формате на какой-то страничке должны быть данные? Можете дать ссылку на пример странички с программой передач, которую вы будете формировать и отдавать нашему приложению? Я бы проанализировал формат данных на этой страничке и оценил, насколько просто или сложно формировать из содержимого этой странички таблицы EIT для транспортного потока.
У нас EPG собирается программой http://www.tvxb.com/ ,вот пример результирующих файлов, которые забираются мультиплексором:
http://ifolder.ru/20480305
Может взять за основу этот формат ??
Игорь Таранцев
Сообщения: 493
Зарегистрирован: 04 янв 2004 12:45
Откуда: СофтЛаб-НСК

Сообщение Игорь Таранцев »

Энди писал(а):Для меня важна автоматизация, чтобы информация бралась полностью из ОнЭйр...
Да, я тоже так очень хотел, но похоже так не получается :( Все таки отдельный файл (со специально подготовленной программой передач) проще в реализации и надежнее с точки зрения ошибок оператора.
1076 писал(а):У нас EPG собирается программой http://www.tvxb.com/ ... Может взять за основу этот формат ??
Да, мне формат понравился (XML вообще хороший формат для программиста :)). Я только не понял, как создается программа на сайте, но это меня и не сильно волнует. Главное, что файл в формате XMLTV появляется в заданном месте вовремя.
Я только думаю, что заодно прийдется поддержать какой-нибудь текстовый формат для начинающих, кому покажется проще набирать программу передач в Excel-е (или в стандартном блокноте).
Энди писал(а): Может стоит сделать имя файла датой содержащегося расписания, для того чтобы можно было создать их на неделю вперед, а граф потом выбирал с текущей датой.
Если использовать программу TVxb, то так не получится (она регулярно записывает файл с одни и тем же именем). Но при использовании собственных текстовых файлов такое сделать можно.
Видимо прийдется ставить в настройках галочку "Брать дату из имени файла" (формат будет такой: anytext_2010_11_29.txt).
stealth
Сообщения: 3
Зарегистрирован: 25 ноя 2010 03:22

Сообщение stealth »

Игорь Таранцев писал(а):
И, наконец, про URL.
А можно уточнить, что нужно брать из URL? В каком формате на какой-то страничке должны быть данные? Можете дать ссылку на пример странички с программой передач, которую вы будете формировать и отдавать нашему приложению? Я бы проанализировал формат данных на этой страничке и оценил, насколько просто или сложно формировать из содержимого этой странички таблицы EIT для транспортного потока.
У нас вопрос создания телепрограммы автоматизирован. Примеры :
http://www.sitv.ru/tvprog/ http://www.sitv.ru/efir512/ Программа формируется на неделю, выделяется наш эфир, на интернет-эфире показывается, что идет в текущий момент.
Формат, в котором отдавать телепрограмму, для нас не критичен, в каком будет понимать ваша программа, в том и отдадим. Можно и в формате текстового файла, который вы предложили. Единственное, надо подумать, не нужно ли будет кроме времени начала, поле длительности события. Могут быть проблемы с определением, что идет в текущий момент, при окончании эфирного времени.
Энди
Сообщения: 74
Зарегистрирован: 20 апр 2009 16:42

Сообщение Энди »

уже есть какие-нибудь прогнозы?
Игорь Таранцев
Сообщения: 493
Зарегистрирован: 04 янв 2004 12:45
Откуда: СофтЛаб-НСК

Сообщение Игорь Таранцев »

До февраля в планах не стоит. После выставки CSTB-2011 будем формировать план первоочередных задач, тогда и будет видно, когда сможем приступить к реализации.
1076
Сообщения: 114
Зарегистрирован: 28 май 2010 14:12

Сообщение 1076 »

Игорь Таранцев писал(а):И, наконец, про URL.
А можно уточнить, что нужно брать из URL? В каком формате на какой-то страничке должны быть данные? Можете дать ссылку на пример странички с программой передач, которую вы будете формировать и отдавать нашему приложению?
для примера

http://tv.akado.ru/channels/sts.html?channel=39&time=[day=yyyy-mm-dd]
Энди
Сообщения: 74
Зарегистрирован: 20 апр 2009 16:42

Сообщение Энди »

Игорь Таранцев писал(а):До февраля в планах не стоит. После выставки CSTB-2011 будем формировать план первоочередных задач, тогда и будет видно, когда сможем приступить к реализации.
Уже середина апрель на носу, приступили к реализации?
Даниленко Сергей
Сообщения: 7091
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

А мы вам какие-то сроки называли?
Энди
Сообщения: 74
Зарегистрирован: 20 апр 2009 16:42

Сообщение Энди »

Даниленко Сергей писал(а):А мы вам какие-то сроки называли?
Я именно о них и спрашиваю, о примерных датах, потому что никакой информации не было
Энди
Сообщения: 74
Зарегистрирован: 20 апр 2009 16:42

Сообщение Энди »

Это важная функция для цифрового ТВ, скажите стоит ее вообще ожидать или есть какой другой способ добавления ее в поток?
Закрыто