таблица EIT (EPG)

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

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

Закрыто
maksevrodim
Сообщения: 2
Зарегистрирован: 17 ноя 2010 00:54

Сообщение maksevrodim »

Кстати, а как эти таблицы создавать?
Энди
Сообщения: 74
Зарегистрирован: 20 апр 2009 16:42

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

maksevrodim писал(а):Кстати, а как эти таблицы создавать?
Меня тоже интересует этот вопрос.
Katya_o
Сообщения: 226
Зарегистрирован: 19 дек 2008 14:53
Откуда: Techsupport SoftLab-NSK

Сообщение Katya_o »

Нашим текущим софтом содержание в таблицу EIT вы не можете внести.
Если на выходном элементе графа вы указали тип потока DVB, то заданное вами в Стримере название выходной программы вносится в таблицу SDT и создается пустая EIT.
Если у вас там остался по умолчанию Transport Stream, то в выходном потоке в SDT не будет этого названия, и таблицы EIT просто не будет.
Игорь Таранцев
Сообщения: 493
Зарегистрирован: 04 янв 2004 12:45
Откуда: СофтЛаб-НСК

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

Добрый день,

А все-таки можно вернуться к вопросу о способе задания таблицы EIT ?
Вопросы к пользователям:
1) таблица EIT нужна только для тех, кто организует полностью собственное вещание? или есть желание получать входную таблицу и править в ней что-то в соответствии с чем-то?
2) каким способом вам было бы удобно задавать таблицу? и в дополнение к этому же вопросу - как соотносить то, что задано в таблице с тем, что сейчас играется? (например, никак не соотносить - пусть передается голая таблица без указания того, что сейчас играется).
Энди
Сообщения: 74
Зарегистрирован: 20 апр 2009 16:42

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

Игорь Таранцев писал(а):Добрый день,

А все-таки можно вернуться к вопросу о способе задания таблицы EIT ?
Вопросы к пользователям:
1) таблица EIT нужна только для тех, кто организует полностью собственное вещание? или есть желание получать входную таблицу и править в ней что-то в соответствии с чем-то?
2) каким способом вам было бы удобно задавать таблицу? и в дополнение к этому же вопросу - как соотносить то, что задано в таблице с тем, что сейчас играется? (например, никак не соотносить - пусть передается голая таблица без указания того, что сейчас играется).
1) У нас полностью собственное вещание
2) Думаю для начала достаточно "текстового" файлика, на будущее конечно хотелось автоматизировать этот процесс.
Игорь Таранцев
Сообщения: 493
Зарегистрирован: 04 янв 2004 12:45
Откуда: СофтЛаб-НСК

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

Взял описание таблицы EIT:
EIT (Event Information Table) — таблица SI. Она содержит список событий, относящихся к каждому потоку, и характеристики этих событий. Стандарт DVB определяет 4 типа таблиц EIT.
1. EIT Actual Present/Following — содержит информацию о текущем и следующем событиях принимаемого потока. Эта таблица, обязательна, ей присвоен PID 0х0012.
Остальные таблицы EIT вводятся факультативно.
2. EIT Other Present/Following — содержит информацию о текущем и последующем событии в других транспортных потоках сети.
3. EIT Actual Event Schedule — содержит детальный перечень событий принимаемого потока в форме расписания, охватывающего более отдаленные события.
4. EIT Other Event Schedule — содержит перечень, аналогичный предыдущему, но для других потоков сети.
Просто текстовый файл не соответствует ни одному из вышеописанных типов таблиц. Поскольку первая таблица обязательна, именно ее и будем обсуждать далее. В ней нужно передавать информацию о ТЕКУЩЕМ и последующем событии. Как получить текущую позицию в простом текстовом файле?
Энди
Сообщения: 74
Зарегистрирован: 20 апр 2009 16:42

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

Игорь Таранцев писал(а): Просто текстовый файл не соответствует ни одному из вышеописанных типов таблиц. Поскольку первая таблица обязательна, именно ее и будем обсуждать далее. В ней нужно передавать информацию о ТЕКУЩЕМ и последующем событии. Как получить текущую позицию в простом текстовом файле?
Нас интересует передавать именно расписание программ Electronic Program Guide (EPG), как я понимаю это EIT Actual Event Schedule? где было бы просто время и название телепрограммы. (текстовый файл бы для этого подошел.). О текущем событии.. тоже интересно.. было предложение брать информацию из комментариев в ОнЭйр.
EIT (Event Information Table) - таблица Событий ТВ с PID=0012 hex, которая содержит информацию о событиях в программе - начале фильма, продолжительности и TDT - Таблица Дата/Время с PID=0014 hex позволяют компьютеру ресивера построить EPG (Electronic Programme Guides) - электронное расписание программ.
Игорь Таранцев
Сообщения: 493
Зарегистрирован: 04 янв 2004 12:45
Откуда: СофтЛаб-НСК

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

Я что-то не понимаю. Вот ваш текст:
Нас интересует передавать именно расписание программ Electronic Program Guide (EPG),
и вот ваша ссылка на внешний источник:
EIT.. и TDT ... позволяют компьютеру ресивера построить EPG
Как-то не сходятся концы с концами. Если вы хотите именно ПЕРЕДАВАТЬ EPG, то по моим сведениям в стандарте DVB нет таких таблиц. И в этом случае у меня ответ однозначный - мы этого сделать не можем, поскольку это не разрешено стандартом DVB. Но я готов получить ссылку на описание того, как эта таблица должна формироваться в стандарте DVB (если вы знаете как).
Мы считаем, что именно приемник строит у себя в "голове" EPG из таблицы EIT (в приведенном вами источнике именно так и написано).

Поэтому повторюсь со своим вопросом про то, как вы планируете задавать то, что нужно выдавать в EIT?
Если это текстовый файлик, то какой у него формат? видимо это должно быть расписание, т.е. в начале строки указывается дата и время, затем указывается название, затем описание. Получается довольно сложно форматированнй текст, который в простом текстовом редакторе набрать без ошибок трудно. И кого наказывать за то, что он указал неправильные времена в этом файле? Например, человек ошибся с датой и в течении суток наш софт сообщал клиентом, что у него идет одна и та же передача.
Если же использовать комментарии в программе OnAir, то в каком виде они должны быть? Как часто? любой комментарий выдавать в EIT или только какие-то специальные (например, начинающиеся со слова EIT)?
Или есть еще вариант - есть известные странички с программами передач - указываешь ссылку, а наша программа сама вычитывает программу на сегодня... Это, конечно, мы точно никогда не сделаем, но как вариант рассматривать можно :) Сейчас я готов рассматривать любые варианты формирования таблиц EIT.

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

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

Игорь Таранцев писал(а): Мы считаем, что именно приемник строит у себя в "голове" EPG из таблицы EIT (в приведенном вами источнике именно так и написано).

Если же использовать комментарии в программе OnAir, то в каком виде они должны быть? Как часто? любой комментарий выдавать в EIT или только какие-то специальные (например, начинающиеся со слова EIT)?
Т.к. приемник сам формирует EPG, то никакой текстовый файлик не нужен, информацию полностью брать из расписания OnAir: название (комментарий, т.к. рабочее название файла не нужно зрителю и так же не нужны рекламные блоки, которые просто не следует комментировать) начало программы и продолжительность. Тег в комментариях не будет лишним, указывающий на то что он относится именно к EIT
Игорь Таранцев
Сообщения: 493
Зарегистрирован: 04 янв 2004 12:45
Откуда: СофтЛаб-НСК

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

Итак, я попытаюсь сформулировать тех-задание для формирования программы передач EPG:
1) пользователь регулярно вставляет в расписание комментарии, начинающиеся с четырех букв: "EPG" + пробел. Начиная с пятой буквы идет произвольный текст, считающийся названием передачи в EPG.
2) в настройках графа указывается, что для такой-то выходной программы содержимое для ее EPG нужно брать из OnAir-а с таким-то номером (#1, #2 и т.д.).
3) граф регулярно (но не часто) считывает текущее расписание из указанного экземпляра OnAir-а, сканирует его, находит в нем все комментарии с "EPG " и по ним вычисляет начало и длительность всех передач. Затем передает текущую программу передач в выходной поток MPTS.

Обращаю внимание, что в таблице EIT можно задавать и название передачи, и описание передачи (description). В текущем предложнии говорится только о названии передачи. Поле описания передачи всегда будет пустым! Меня это устраивает, поскольку в программе OnAir места для комментариев не много и название передачи туда может войти, а вот описание точно не войдет. В итоге у телезрителя получится сокращенная программа передач, как в простой газете. А вот развернутую программу передач с комментарием к каждому фильму смотрите в газете "Теле7" за отдельные деньги :)

Из возможных проблем:
- если пользователь пропустил комментарий, или ошибся в названии (написал EPG с русскими буквами Е или Р), то длительность предыдущей передачи увеличится и не будет соответствовать действительности. Никакой индикации об ошибке в этом случае не будет.
- программа передач будет ограничена по длительности длиной текущего расписания, поэтому если используется режим Autoload с небольшими расписаниями, то и расписание будет таким-же коротким.
- EPG хорошо работает при собственном вещании и "плохо" работает для ретрансляции. Надо будет ручками разбивать одну команду Video1 на много с отдельными комментариями для каждой команды.
- времена начала передач (и, соответственно, их длительности) будут вычисляться с большими (возможно, неприемлемыми) ошибками при использовании "ручного" старта в расписании, либо по старту от внешних кнопок, либо по срабатыванию событий AutoDetect-а. Т.е. при каждой "паузе" в расписании, либо при перескоке вперед времена изменяются и начинают несовпадать с тем, что было посчитано раньше. Поскольку таблица EPG обновляется редко, пользователь увидит изменение далеко не сразу.
- также нельзя использовать команды перехода в расписании (цикл или переключение расписания). Скорее всего сканер расписания (в графе) будет просто останавливаться на следующей команде перехода на начало блока, в начало расписния или в другое расписание и не будет пытаться вычислить времена передач далее.

Всех устраивает данный вариант?
stealth
Сообщения: 3
Зарегистрирован: 25 ноя 2010 03:22

Сообщение stealth »

Нужна возможность брать расписание не только с OnAir, но и из внешнего источника, текстового файла или url. Вещание в IP возможно не только с собственным програмированием, но и со вставками в фоновый канал. В этом случае, передачи фонового канала будут без телепрограммы.
Энди
Сообщения: 74
Зарегистрирован: 20 апр 2009 16:42

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

Игорь Таранцев писал(а): Всех устраивает данный вариант?
устраивает, но то что программа передач будет ограничена по длительности длиной текущего расписания, это плохо, здесь можно поддержать stealth, что если бы был какой то файлик с полным расписание определенного формата - это тоже был бы вариант.
Но главное с чего то начать!!!
1076
Сообщения: 114
Зарегистрирован: 28 май 2010 14:12

Сообщение 1076 »

Что нужно обязательно учесть при разработке:
Абонентские терминалы берут текущее время из TDT таблицы в транспортном потоке(формируемой мультиплексором), в этой таблице всегда гринвич - 0, без учета перехода на летнее время. Значения времени в формируемом EPG должны автоматом корректироваться в Гринвич - 0 , так как выставлять этот часовой пояс на вещательной машине было бы не совсем правильно.

Наверно проще и правильнее на начальном этапе делать файл с расписанием на 3-6 дней и description на каждую передачу , который будет вещаться с нужным PID.
Или как вариант экспорт из ONAir содержимого комментариев панели проигрывания в текстовый файл, который при желании можно формировать и вручную.
1076
Сообщения: 114
Зарегистрирован: 28 май 2010 14:12

Сообщение 1076 »

Игорь Таранцев писал(а): Если это текстовый файлик, то какой у него формат? видимо это должно быть расписание, т.е. в начале строки указывается дата и время, затем указывается название, затем описание. Получается довольно сложно форматированнй текст, который в простом текстовом редакторе набрать без ошибок трудно.
Вот образец EIT таблицы, PID18 : http://ifolder.ru/20478259 кодировка iec 8859-5
Энди
Сообщения: 74
Зарегистрирован: 20 апр 2009 16:42

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

1076 писал(а): Вот образец EIT таблицы
А вот еще:
EIT (Event Information Table) содержит информацию о передачах (в англоязычной терминологии DVB передача называется "event" - "событие").

Существует две разновидности EIT: краткая, содержащая информацию только о текущей и следующей передаче программы, и более полная - обычно на 1-2 дня вперёд. EIT может относиться к передачам программ из текущего потока или из других потоков той же сети.
Всего получается четыре возможных разновидности, которые передаются с разными идентификаторами таблиц:
0x4E - текущий поток, текущая и следующая передача
0x4F - другой поток, текущая и следующая передача
0x50-0x5F - текущий поток, расписание
0x60-0x6F - другой поток, расписание

В стандарте EN 300 468 для EIT предусмотрен фиксированный PID 0x0012. И это, кстати, единственная стандартизованная таблица, которая может передаваться скрэмблированной (зашифрованной).

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

Event Information Table (EIT):
------------------------------------------------------------
SECT-Packet: 00000001   PID: 18 (0x0012), Length: 87 (0x0057)
------------------------------------------------------------

PID:  18 (0x0012)  [= assigned for: DVB Event Information Table (EIT)]
Guess table from table id...
EIT-decoding....
Table_ID: 78 (0x4e)  [= Event Information Table (EIT) - actual transport stream, present/following]
section_syntax_indicator: 1 (0x01)
Section_length: 84 (0x0054)
Service_ID: 2106 (0x083a)  [=  --> refers to PMT program_number]
Version_number: 27 (0x1b)
current_next_indicator: 1 (0x01)  [= valid now]
Section_number: 0 (0x00)
Last_Section_number: 1 (0x01)
Transport_stream_ID: 2001 (0x07d1)
Original_network_ID: 8564 (0x2174)  [= Irish Digital Terrestrial Television | Irish Telecommunications Regulator]
Segment_last_Section_number: 1 (0x01)
Last_table_id: 78 (0x4e)  [= Event Information Table (EIT) - actual transport stream, present/following]

    Event_ID: 58664 (0xe528)
    Start_time: 0xd550073000 [= 2008-05-22 07:30:00 (UTC)]
    Duration: 0x0003000 [=  00:30:00 (UTC)]
    Running_status: 4 (0x04)  [= running]
    Free_CA_mode: 1 (0x01)  [= streams [partially] CA controlled]
    Descriptors_loop_length: 57 (0x39)

            DVB-DescriptorTag: 77 (0x4d)  [= short_event_descriptor]
            Descriptor_length: 55 (0x37)
              ISO639_2_language_code:  eng
            event_name_length: 8 (0x08)
            event_name: "BBC News"  -- Charset: Latin alphabet
            text_length: 42 (0x2a)
            text_char: "All the latest news from around the world."  -- Charset: Latin alphabet

CRC: 3123843648 (0xba321240)
==========================================================

Поскольку расписания довольно большие, таблицы могут содержать не по одной секции, как было в ранее приведённых примерах, а по несколько. Обратите внимание на поля Section_number и Last_Section_number.

Идентификатор программы, к которой относится расписание, указан в поле Service_ID. В данном примере он равен 2106, который, как мы помним из SDT, относится к программе по имени "BBC News24 - Test". С 7:30 утра UTC 22 мая в течение 30 минут по этой программе идёт передача "BBC News". Эта передача и идёт в данный момент (Running_status=4).

А вот вторая секция этой таблицы для той же программы 2106:
------------------------------------------------------------
SECT-Packet: 00000001   PID: 18 (0x0012), Length: 87 (0x0057)
Time received: Thu 2008-05-22  08:47:45.855
------------------------------------------------------------

PID:  18 (0x0012)  [= assigned for: DVB Event Information Table (EIT)]
Guess table from table id...
EIT-decoding....
Table_ID: 78 (0x4e)  [= Event Information Table (EIT) - actual transport stream, present/following]
section_syntax_indicator: 1 (0x01)
Section_length: 84 (0x0054)
Service_ID: 2106 (0x083a)  [=  --> refers to PMT program_number]
Version_number: 27 (0x1b)
current_next_indicator: 1 (0x01)  [= valid now]
Section_number: 1 (0x01)
Last_Section_number: 1 (0x01)
Transport_stream_ID: 2001 (0x07d1)
Original_network_ID: 8564 (0x2174)  [= Irish Digital Terrestrial Television | Irish Telecommunications Regulator]
Segment_last_Section_number: 1 (0x01)
Last_table_id: 78 (0x4e)  [= Event Information Table (EIT) - actual transport stream, present/following]

    Event_ID: 58665 (0xe529)
    Start_time: 0xd550080000 [= 2008-05-22 08:00:00 (UTC)]
    Duration: 0x0010000 [=  01:00:00 (UTC)]
    Running_status: 1 (0x01)  [= not running]
    Free_CA_mode: 1 (0x01)  [= streams [partially] CA controlled]
    Descriptors_loop_length: 57 (0x39)

            DVB-DescriptorTag: 77 (0x4d)  [= short_event_descriptor]
            Descriptor_length: 55 (0x37)
              ISO639_2_language_code:  eng
            event_name_length: 8 (0x08)
            event_name: "BBC News"  -- Charset: Latin alphabet
            text_length: 42 (0x2a)
            text_char: "All the latest news from around the world."  -- Charset: Latin alphabet

CRC: 3438977240 (0xccfaa0d8)
==========================================================

С 8 утра UTC в течение часа будет идти другая передача. Хоть и с тем же названием "BBC News" :) В настоящий момент она не передаётся (Running_status=1).


Пример краткого расписания от программы из другого потока (Transport_stream_ID=3001), Table_ID=0x4F:
------------------------------------------------------------
SECT-Packet: 00000001   PID: 18 (0x0012), Length: 228 (0x00e4)
------------------------------------------------------------

PID:  18 (0x0012)  [= assigned for: DVB Event Information Table (EIT)]
Guess table from table id...
EIT-decoding....
Table_ID: 79 (0x4f)  [= Event Information Table (EIT) - other transport stream, present/following]
section_syntax_indicator: 1 (0x01)
Section_length: 225 (0x00e1)
Service_ID: 3102 (0x0c1e)  [=  --> refers to PMT program_number]
Version_number: 13 (0x0d)
current_next_indicator: 1 (0x01)  [= valid now]
Section_number: 1 (0x01)
Last_Section_number: 1 (0x01)
Transport_stream_ID: 3001 (0x0bb9)
Original_network_ID: 8564 (0x2174)  [= Irish Digital Terrestrial Television | Irish Telecommunications Regulator]
Segment_last_Section_number: 1 (0x01)
Last_table_id: 79 (0x4f)  [= Event Information Table (EIT) - other transport stream, present/following]

    Event_ID: 40651 (0x9ecb)
    Start_time: 0xd550080000 [= 2008-05-22 08:00:00 (UTC)]
    Duration: 0x0003000 [=  00:30:00 (UTC)]
    Running_status: 1 (0x01)  [= not running]
    Free_CA_mode: 1 (0x01)  [= streams [partially] CA controlled]
    Descriptors_loop_length: 198 (0xc6)

            DVB-DescriptorTag: 77 (0x4d)  [= short_event_descriptor]
            Descriptor_length: 196 (0xc4)
              ISO639_2_language_code:  eng
            event_name_length: 19 (0x13)
            event_name: "Big Fight Countdown"  -- Charset: Latin alphabet
            text_length: 172 (0xac)
            text_char: "Preview of the big fight at the City of Manchester Stadium between Ricky Hatton and Juan Lazcano, as 'The Hitman' looks to bounce back from defeat against Floyd Mayweather."  -- Charset: Latin alphabet

CRC: 3542035171 (0xd31f2ae3)
==========================================================


Полное расписание от программы 2101 ("Channel 6") текущего потока, Table_ID=0x50. 
Полную таблицу я приводить не буду, тут только одна секция (Section_number=120) из 249 (Last_Section_number=248, а нумеруются они с нуля):
------------------------------------------------------------
SECT-Packet: 00000001   PID: 18 (0x0012), Length: 406 (0x0196)
------------------------------------------------------------

PID:  18 (0x0012)  [= assigned for: DVB Event Information Table (EIT)]
Guess table from table id...
EIT-decoding....
Table_ID: 80 (0x50)  [= Event Information Table (EIT) - actual transport stream, schedule]
section_syntax_indicator: 1 (0x01)
Section_length: 403 (0x0193)
Service_ID: 2101 (0x0835)  [=  --> refers to PMT program_number]
Version_number: 30 (0x1e)
current_next_indicator: 1 (0x01)  [= valid now]
Section_number: 120 (0x78)
Last_Section_number: 248 (0xf8)
Transport_stream_ID: 2001 (0x07d1)
Original_network_ID: 8564 (0x2174)  [= Irish Digital Terrestrial Television | Irish Telecommunications Regulator]
Segment_last_Section_number: 120 (0x78)
Last_table_id: 82 (0x52)  [= Event Information Table (EIT) - actual transport stream, schedule]

    Event_ID: 8923 (0x22db)
    Start_time: 0xd551210000 [= 2008-05-23 21:00:00 (UTC)]
    Duration: 0x0020500 [=  02:05:00 (UTC)]
    Running_status: 0 (0x00)  [= undefined]
    Free_CA_mode: 1 (0x01)  [= streams [partially] CA controlled]
    Descriptors_loop_length: 184 (0xb8)

            DVB-DescriptorTag: 77 (0x4d)  [= short_event_descriptor]
            Descriptor_length: 182 (0xb6)
              ISO639_2_language_code:  eng
            event_name_length: 12 (0x0c)
            event_name: "The Big Easy"  -- Charset: Latin alphabet
            text_length: 165 (0xa5)
            text_char: "Drama about a corrupt New Orleans cop who finds his department under investigation by an uncompromising female DA at the same time as a gang war erupts on his patch."  -- Charset: Latin alphabet


    Event_ID: 8925 (0x22dd)
    Start_time: 0xd551230500 [= 2008-05-23 23:05:00 (UTC)]
    Duration: 0x0005500 [=  00:55:00 (UTC)]
    Running_status: 0 (0x00)  [= undefined]
    Free_CA_mode: 1 (0x01)  [= streams [partially] CA controlled]
    Descriptors_loop_length: 180 (0xb4)

            DVB-DescriptorTag: 77 (0x4d)  [= short_event_descriptor]
            Descriptor_length: 178 (0xb2)
              ISO639_2_language_code:  eng
            event_name_length: 12 (0x0c)
            event_name: "Dead Like Me"  -- Charset: Latin alphabet
            text_length: 161 (0xa1)
            text_char: "Drama series about a dead teenager who becomes a reaper, helping souls as people die. George finds that shirking her duties has nasty consequences for the souls."  -- Charset: Latin alphabet

CRC: 2899891169 (0xacd8d3e1)
==========================================================
Закрыто