November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Thursday, May 22nd, 2008 08:57 am
Остальные части

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)
==========================================================
Tags:
Friday, October 31st, 2008 09:40 am (UTC)
И вот все же не совсем ясно про идентификаторы полного расписания EIT 0x50-0x5f... К примеру, в потоке для определенного Service ID есть 2 таблицы полной EIT- 0x50 и 0x51. У каждой разное количество секций- в 0x50- 248, а в 0x51- 176. Как их трактовать? Тоесть 0x50- таблица расписания на сегодня, а 0x51 на завтра?
Friday, October 31st, 2008 09:25 pm (UTC)
Хороший вопрос. В стандарте написано следующее:

The EIT (see table 7) provides information in chronological order regarding the events contained within each service.
Four classifications of EIT have been identified, distinguishable by the use of different table_ids (see table 2):
1) actual TS, present/following event information = table_id = "0x4E";
2) other TS, present/following event information = table_id = "0x4F";
3) actual TS, event schedule information = table_id = "0x50" to "0x5F";
4) other TS, event schedule information = table_id = "0x60" to "0x6F".

Больше никаких уточнений по поводу использования table_id нет.
Надо смотреть, что именно в этих таблицах написано. Это они от какого сервиса они так передаются?
Monday, November 3rd, 2008 12:45 pm (UTC)
Вобщем разобрался сам. Там в расписании просто кроме времени передается дата, вот по ней и нужно фильтровать на какой хочешь день
Monday, May 30th, 2011 02:18 pm (UTC)
Ёпт, а как так получилось, что я вместо того, что бы прочесть твои посты, ковырялся в сырцах всяких библиотек.

Спасибо, у тебя очень много ценной информации про MPEG-TS
Monday, May 30th, 2011 02:25 pm (UTC)
В ISO/IEC 13818 и EN 300 468 её ещё больше. Читайте доку, она рулез ;)
Monday, May 30th, 2011 02:26 pm (UTC)
Про EN 300 468 не слышал
Monday, May 30th, 2011 02:27 pm (UTC)
http://www.etsi.org/deliver/etsi_en/300400_300499/300468/01.05.01_40/en_300468v010501o.pdf