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
Saturday, May 17th, 2008 11:05 pm
Остальные части

Более детальное (чем в ISO 13818) описание служебных таблиц (service information, SI) содержится в другом стандарте - EN 300 468, утверждённом Европейским Вещательным Союзом (European Broadcasting Union). Стандарт этот, очевидно, распространяется только на Европу. По всей видимости, в других регионах должны существовать аналогичные стандарты, но мне о них ничего не известно.

Network Information Table, как следует из её названия, содержит информацию о сети (network), то есть, группе мультиплексированных потоков, относящихся к одной системе доставки сигнала (delivery system). Это может быть, например, конкретная кабельная или эфирная система или группа транспондеров на спутнике.


Узнав из приведённой в прошлом примере PAT, что NIT передаётся с PID'ом 0x0010, приёмник может прочитать эту таблицу.

В приведённом ниже примере NIT содержит описания всех четырёх имеющихся в системе транспондеров. Однако NIT не является обязательной таблицей, и даже если она присутствует, она может не содержать данных о других транспондерах. Поэтому при первоначальной настройке полагаться только на данные из NIT приёмник не может. Тем более, чтобы настроиться на первый транспондер, приёмник должен откуда-то заранее взять его параметры.

Следовательно, списки транспондеров и их параметров должны быть либо заранее зашиты в память приёмника (так обычно делают провайдеры, выдающие своим клиентам ресиверы с управляющей программой, подстроенной под нужды конкретного провайдера), либо введены пользователем вручную (ну или закачаны ресивером откуда-нибудь из интернета).

Тем не менее, данные из NIT могут помочь приёмнику получить информацию о других транспондерах, которые в его списке отсутствовали.

Более того, иногда в NIT присутствует информация о транспондерах других систем, например, с других спутников, или, скажем, в NIT, передаваемой со спутника в DVB-S, могут быть описания кабельных транспондеров того же провайдера.

Кроме информации о транспондерах, в NIT содержатся номера программ и их тип (телевизионные или радио). Многие ресиверы при сортировке найденных программ используют именно этот параметр, а не наличие или отсутствие видеопотоков в PMT каждой программы. Если в NIT тип программы указан неправильно (а такое иногда случается), ресивер может воспроизводить программу неправильно - у телепрограммы, описанной как радио, не будет изображения, а у радиопрограммы, описанной как теле-, вместо заставки будет черный экран.

Номера программ выбираются вещателем произвольно, единственное условие - они не должны быть 0 (это значение зарезервировано для указания NIT в PAT) и должны быть уникальными в пределах мультиплексированного потока, хотя обычно они уникальны и в пределах сети.


Network Information Table:
------------------------------------------------------------
SECT-Packet: 00000001   PID: 16 (0x0010), Length: 409 (0x0199)
------------------------------------------------------------

PID:  16 (0x0010)  [= assigned for: DVB Network Information Table (NIT), Stuffing Table (ST)]
Guess table from table id...
NIT-decoding....
Table_ID: 64 (0x40)  [= Network Information Table (NIT) - actual network]
section_syntax_indicator: 1 (0x01)
Section_length: 406 (0x0196)
Network_ID: 12801 (0x3201)  [= --> please lookup at http://www.dvb.org]
Version_number: 0 (0x00)
current_next_indicator: 1 (0x01)  [= valid now]
Section_number: 0 (0x00)
Last_Section_number: 0 (0x00)
Network_descriptor_length: 11 (0x000b)

        DVB-DescriptorTag: 64 (0x40)  [= network_name_descriptor]
        Descriptor_length: 9 (0x09)
        Network_name: "Irish DTT"  -- Charset: Latin alphabet


Transport_stream_loop_length: 382 (0x017e)

    Transport_stream_ID: 1001 (0x03e9)
    Original_network_ID: 8564 (0x2174)  [= Irish Digital Terrestrial Television | Irish Telecommunications Regulator]
    Transport_descriptor_length: 108 (0x006c)

            DVB-DescriptorTag: 90 (0x5a)  [= terrestrial_delivery_system_descriptor]
            Descriptor_length: 11 (0x0b)
            Center frequency: 0x0465d825 (= 737833.033 kHz)
            Bandwidth: 0 (0x00)  [= 8 MHz]
            priority: 1 (0x01)  [= HP (high priority)]
            Time_Slicing_indicator: 1 (0x01)  [= Time Slicing is not used.)]
            MPE-FEC_indicator: 1 (0x01)  [= MPE-FEC is not used.)]
            Constellation: 1 (0x01)  [= 16-QAM]
            Hierarchy information: 0 (0x00)  [= non-hierarchical]
            Code_rate_HP_stream: 2 (0x02)  [= 3/4]
            Code_rate_LP_stream: 0 (0x00)  [= 1/2]
            Guard_interval: 0 (0x00)  [= 1/32]
            Transmission_mode: 1 (0x01)  [= 8k mode]
            Other_frequency_flag: 1 (0x01)

            DVB-DescriptorTag: 65 (0x41)  [= service_list_descriptor]
            Descriptor_length: 36 (0x24)
               service_ID: 1101 (0x044d)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]

               service_ID: 1102 (0x044e)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]

               service_ID: 1103 (0x044f)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]

               service_ID: 1104 (0x0450)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]

               service_ID: 1226 (0x04ca)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]

               service_ID: 1227 (0x04cb)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]

               service_ID: 1228 (0x04cc)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]

               service_ID: 1229 (0x04cd)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]

               service_ID: 1230 (0x04ce)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]

               service_ID: 1231 (0x04cf)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]

               service_ID: 1232 (0x04d0)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]

               service_ID: 1233 (0x04d1)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]


            DVB-DescriptorTag: 98 (0x62)  [= frequency_list_descriptor]
            Descriptor_length: 5 (0x05)
            coding_type: 3 (0x03)  [= terrestrial]
               Centre_frequency: 045a255b  (= 730166.067 kHz)

            Descriptor_length: 48 (0x30)
            Descriptor-data:
                 0000:  04 4d fc 01 04 4e fc 02  04 4f fc 03 04 50 fc 04   .M...N...O...P..
                 0010:  04 ca fe bd 04 cb fe be  04 cc fe bf 04 cd fe c0   ................
                 0020:  04 ce fe c1 04 cf fe c2  04 d0 fe c7 04 d1 fe c8   ................


    Transport_stream_ID: 2001 (0x07d1)
    Original_network_ID: 8564 (0x2174)  [= Irish Digital Terrestrial Television | Irish Telecommunications Regulator]
    Transport_descriptor_length: 122 (0x007a)

            DVB-DescriptorTag: 90 (0x5a)  [= terrestrial_delivery_system_descriptor]
            Descriptor_length: 11 (0x0b)
            Center frequency: 0x0496ed40 (= 770000.000 kHz)
            Bandwidth: 0 (0x00)  [= 8 MHz]
            priority: 1 (0x01)  [= HP (high priority)]
            Time_Slicing_indicator: 1 (0x01)  [= Time Slicing is not used.)]
            MPE-FEC_indicator: 1 (0x01)  [= MPE-FEC is not used.)]
            Constellation: 1 (0x01)  [= 16-QAM]
            Hierarchy information: 0 (0x00)  [= non-hierarchical]
            Code_rate_HP_stream: 2 (0x02)  [= 3/4]
            Code_rate_LP_stream: 0 (0x00)  [= 1/2]
            Guard_interval: 0 (0x00)  [= 1/32]
            Transmission_mode: 1 (0x01)  [= 8k mode]
            Other_frequency_flag: 1 (0x01)

            DVB-DescriptorTag: 65 (0x41)  [= service_list_descriptor]
            Descriptor_length: 42 (0x2a)
               service_ID: 2101 (0x0835)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]

               service_ID: 2102 (0x0836)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]

               service_ID: 2103 (0x0837)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]

               service_ID: 2104 (0x0838)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]

               service_ID: 2105 (0x0839)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]

               service_ID: 2226 (0x08b2)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]

               service_ID: 2227 (0x08b3)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]

               service_ID: 2228 (0x08b4)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]

               service_ID: 2229 (0x08b5)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]

               service_ID: 2233 (0x08b9)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]

               service_ID: 2232 (0x08b8)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]

               service_ID: 2106 (0x083a)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]

               service_ID: 2225 (0x08b1)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]

               service_ID: 2221 (0x08ad)[ --> refers to PMT program_number]
               service_type: 2 (0x02)  [= digital radio sound service]


            Descriptor_length: 56 (0x38)
            Descriptor-data:
                 0000:  08 35 fc 06 08 36 fc 07  08 37 fc 08 08 38 fc 09   .5...6...7...8..
                 0010:  08 39 fc 0a 08 b2 fe c3  08 b3 fe c4 08 b4 fe c5   .9..............
                 0020:  08 b5 fe c6 08 b9 fe ca  08 b8 fe c9 08 3a fc 0b   .............:..
                 0030:  08 b1 fe cb 08 ad fe cc                            ........

            DVB-DescriptorTag: 98 (0x62)  [= frequency_list_descriptor]
            Descriptor_length: 5 (0x05)
            coding_type: 3 (0x03)  [= terrestrial]
               Centre_frequency: 048af95b  (= 762166.067 kHz)


    Transport_stream_ID: 3001 (0x0bb9)
    Original_network_ID: 8564 (0x2174)  [= Irish Digital Terrestrial Television | Irish Telecommunications Regulator]
    Transport_descriptor_length: 90 (0x005a)

            DVB-DescriptorTag: 90 (0x5a)  [= terrestrial_delivery_system_descriptor]
            Descriptor_length: 11 (0x0b)
            Center frequency: 0x04bb8c40 (= 794000.000 kHz)
            Bandwidth: 0 (0x00)  [= 8 MHz]
            priority: 1 (0x01)  [= HP (high priority)]
            Time_Slicing_indicator: 1 (0x01)  [= Time Slicing is not used.)]
            MPE-FEC_indicator: 1 (0x01)  [= MPE-FEC is not used.)]
            Constellation: 1 (0x01)  [= 16-QAM]
            Hierarchy information: 0 (0x00)  [= non-hierarchical]
            Code_rate_HP_stream: 2 (0x02)  [= 3/4]
            Code_rate_LP_stream: 0 (0x00)  [= 1/2]
            Guard_interval: 0 (0x00)  [= 1/32]
            Transmission_mode: 1 (0x01)  [= 8k mode]
            Other_frequency_flag: 1 (0x01)

            DVB-DescriptorTag: 65 (0x41)  [= service_list_descriptor]
            Descriptor_length: 18 (0x12)
               service_ID: 3101 (0x0c1d)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]

               service_ID: 3102 (0x0c1e)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]

               service_ID: 3103 (0x0c1f)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]

               service_ID: 3104 (0x0c20)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]

               service_ID: 3105 (0x0c21)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]

               service_ID: 3106 (0x0c22)[ --> refers to PMT program_number]
               service_type: 1 (0x01)  [= digital television service]


            Descriptor_length: 48 (0x30)
            Descriptor-data:
                 0000:  0c 1d fc 0c 0c 1e fc 0d  0c 1f fc 0e 0c 20 fc 0f   ............. ..
                 0010:  0c 21 fc 10 0c 22 fc 11  0c 9a fe d0 0c 9b fe d1   .!..."..........
                 0020:  0c 9c fe d2 0c 9d fe d3  0c 9e fe d4 0c 9f fe d5   ................

            DVB-DescriptorTag: 98 (0x62)  [= frequency_list_descriptor]
            Descriptor_length: 5 (0x05)
            coding_type: 3 (0x03)  [= terrestrial]
               Centre_frequency: 04af5740  (= 786000.000 kHz)


    Transport_stream_ID: 4001 (0x0fa1)
    Original_network_ID: 8564 (0x2174)  [= Irish Digital Terrestrial Television | Irish Telecommunications Regulator]
    Transport_descriptor_length: 38 (0x0026)

            DVB-DescriptorTag: 98 (0x62)  [= frequency_list_descriptor]
            Descriptor_length: 5 (0x05)
            coding_type: 3 (0x03)  [= terrestrial]
               Centre_frequency: 04d3f640  (= 810000.000 kHz)

            DVB-DescriptorTag: 65 (0x41)  [= service_list_descriptor]
            Descriptor_length: 6 (0x06)
               service_ID: 4101 (0x1005)[ --> refers to PMT program_number]
               service_type: 25 (0x19)  [= reserved]

               service_ID: 4102 (0x1006)[ --> refers to PMT program_number]
               service_type: 22 (0x16)  [= reserved]

            Descriptor_length: 8 (0x08)
            Descriptor-data:
                 0000:  10 05 fc 14 10 06 fc 12                            ........

            DVB-DescriptorTag: 90 (0x5a)  [= terrestrial_delivery_system_descriptor]
            Descriptor_length: 11 (0x0b)
            Center frequency: 0x04e02b40 (= 818000.000 kHz)
            Bandwidth: 0 (0x00)  [= 8 MHz]
            priority: 1 (0x01)  [= HP (high priority)]
            Time_Slicing_indicator: 1 (0x01)  [= Time Slicing is not used.)]
            MPE-FEC_indicator: 1 (0x01)  [= MPE-FEC is not used.)]
            Constellation: 1 (0x01)  [= 16-QAM]
            Hierarchy information: 0 (0x00)  [= non-hierarchical]
            Code_rate_HP_stream: 2 (0x02)  [= 3/4]
            Code_rate_LP_stream: 0 (0x00)  [= 1/2]
            Guard_interval: 0 (0x00)  [= 1/32]
            Transmission_mode: 1 (0x01)  [= 8k mode]
            Other_frequency_flag: 1 (0x01)

CRC: 2356176698 (0x8c70673a)
==========================================================


Итак, мы видим
Table_ID=0x40, который позволяет интерпретировать дальнейшее содержание таблицы именно как NIT. Встречается также 0x42 - это NIT от другой сети, не от той, к которой относится данный транспондер.

Номер сети, которую описывает данная таблица - Network_ID: 12801 (0x3201).

Небольшое отступление про идентификаторы в DVB.

Для некоторых идентификаторов, значения которых должны быть при разработке DVB-оборудования заранее широко известны, эти значения определяются в стандартах (например, значения некоторых PIDов и идентификаторов служебных таблиц). Для других, которые могут время от времени добавляться, и количество которых заранее неизвестно, но которые должны быть [в некоторых пределах] уникальны, эти значения централизовано выделяются DVB-консорциумом. В частности, идентификаторы систем условного доступа (CA ID), идентификаторы сетей (network ID), идентификаторы исходных сетей (original network ID).

[Конец отступления про идентификаторы]

Вообще-то, это делается для обеспечения уникальности, но идентификатор сети 0x3201 оказался в диапазонах для DVB-T, выделенных государственным организациям по надзору за радио- и телевещанием сразу нескольких стран: Австралии, Ирландии, Сингапура, Дании, Эстонии, Швейцарии, Андорры и Словении. С моей точки зрения выглядит странновато, но учитывая, что эти страны напрямую не граничат, пересечение этих сетей эфирного вещания в одной географической точке маловероятно.

Описание сети состоит из одного поля, в котором указано её название: "Irish DTT". Это даёт некоторую определённость относительно страны :)

Далее следуют описания четырёх транспондеров сети вместе со списками номеров программ каждого из них. Из параметров видно, что все они вещают в системе DVB-T с модуляцией 16-QAM и шириной полосы 8MHz.

Идентификатор исходной сети (Original_network_ID) для всех транспондеров равен 8564 (0x2174). В отличие от network ID, который идентифицирует физическую систему доставки сигнала, original network ID определяет источник - откуда происходит сигнал. На сайте DVB-консорциума можно узнать, что 0x2174 - это "Irish Digital Terrestrial Television", управляемый оператором "Irish Telecommunications Regulator".

Первый транспондер (точнее, передаваемый с него мультиплексированный поток) имеет идентификатор потока (Transport_stream_ID) = 1001,
частоту 737833.033 кГц,
номера программ: 1101-1104 (теле), 1226-1233 (радио).

Второй транспондер:
Transport_stream_ID=2001
частота 770000.000 кГц
номера программ: 2101-2106 (теле), 2221, 2225-2229, 2231-2233 (радио).

Третий транспондер:
Transport_stream_ID=3001
частота 794000.000 кГц
номера программ: 3101-3106 (теле)

Четвертый транспондер:
Transport_stream_ID=4001
частота 810000.000 кГц
номера программ: 4101 и 4102. Тип у них 0x25 и 0x22, соответственно. Это тесты программ высокой чёткости изображения (HD).
Забегая вперёд, скажу, что видеопотоки у них идут с типом 27 (0x1B), который обозначает MPEG4 в виде H.264, он же ISO/IEC 14496-10. В отличие от обычных DVB-каналов, у которых тип потока 2 (обычный MPEG2-video).
Tags:
Tuesday, February 17th, 2009 01:32 pm (UTC)
И все же хотелось бы услышать как необходимо правильно парсить NIT. Вот к примеру, пропарсил я всю NIT таблицу. Извлек оттуда все транспондеры с программами (вернее просто их сервис id и типы). И что дальше? Парсить PMT ? Фильтр приемника требует для отлова конкретной PMT- пид программы, которой в NIT нету... Что делать?
Thursday, February 19th, 2009 06:33 pm (UTC)
на предмет чего вы ее собираетесь парсить?
насколько я знаю, обычно оттуда извлекаются только данные о транспондерах, а всё остальное - из локальных таблиц текущего транспондера после переключения на него.
Friday, February 20th, 2009 01:58 pm (UTC)
Да, спасибо, уже сам разобрался.