Skip to content

Multiplexer

Multiplexer - это важнейший элемент всей системы для поставки телевидения в DVB сети.

Основные задачи

Он закрывает следующие задачи:

  • Подготовка MPEG-TS потока с соблюдением требований DVB стандарта на CBR, PCR accuracy, HRD buffer и т.п.
  • Упаковка нескольких телеканалов в MPTS с сохранением равномерности перемешивания телеканалов
  • Формирование всех служебных таблиц: PAT, PMT, SDT, EIT, NIT необходимых для полноценного DVB сервиса

Пример настройки

transponder plp0 {
  provider "Central TV";
  bitrate 22600k;
  ts_stream_id 1;
  network 0x3578 original=0x2283 name="DTT - National TV";
  time_offset RUS:10 time_of_change=2018-03-23T03:00:00Z local_time_offset=+0300 next_time_offset=+0300;
  version psi 25;
  ts_descriptor 0x7F 040022830325;
  push udp://streaming0@238.238.31.1:1111 multicast_loop tos=0;
  program 1010 {
    source Switcher_1010_ort;
    title "01 ORT";
    eit_title Ort_(+0);
    lcn 1;
    service_type digital_tv_avc_sd;
    pid 1010 pmt;
    pid 1011 v1 pcr bitrate=2720 ;
    pid 1012 a1 ;
    pid 1014 l1 codec=ttxt  ;
    pid 1015 l1 codec=scte35  ;
    pid 1016 bypass   es_info=6F030010E1 stream_type=5;
    pid 1017 bypass   es_info=140D000B00000080000000FFFFFFFF52010B130500002F520066020123 stream_type=11;
    pid 1018 bypass   es_info=52010D stream_type=12;
  }
  program 1040 {
    source Switcher_1040_04_Uchebniy;
    title "04 Учебный";
    eit_title Uchebniy_(+0);
    lcn 4;
    service_type digital_tv_avc_sd;
    pid 1040 pmt;
    pid 1041 v1 pcr bitrate=2750 ;
    pid 1042 a1;
    pid 1044 l1 codec=ttxt  ;
    pid 1045 l1 codec=scte35  ;
    pid 1046 bypass   es_info=6F030010E1 stream_type=5;
    pid 1047 bypass   es_info=140D000B00000080000000FFFFFFFF52010B130500002F520066020123 stream_type=11;
    pid 1048 bypass   es_info=52010D stream_type=12;
  }
  other @plp1;
  eit {
    source bypass://EIT_source_MUX1_plp0;
    max_bitrate 300;
  }  
}

Детали настройки

Секции program

В конфигурации мультиплексора указаны секции program - это отдельные телеканалы. Они должны ссылаться на стрим, заведенный в Mcaster.

Параметры программы

  • title - название телеканала
  • eit_title - опциональный заголовок, который уходит в EPG (Electronic Program Guide)
  • lcn (Logical Channel Number) - порядковый номер в списке программ, передается в NIT таблицу
  • service_type - тип сервиса, указывается в SDT таблице

Настройка PID

Список PID жесткий, фиксированный, не динамический и не будет меняться в зависимости от источника.

Опции PID

  • pmt - в этом PID пойдет PMT таблица
  • pcr - на этом PID будет маркироваться PCR (Program Clock Reference)
  • codec - можно отдельно указать кодек PID
  • bitrate - можно форсировать битрейт PID
  • bypass - пиды, которые пробрасываются без демультиплексирования на входе

Параметры bypass PID

Для bypass PID можно указать параметры упаковки MPEG-TS:

  • es_info - информация о элементарном потоке
  • stream_type - тип потока

Дополнительные параметры

  • other - позволяет ссылаться на другие мультиплексоры для формирования SDT
  • eit - формирование EIT таблицы:
  • Из файла
  • Из стрима, в котором захватывается программа передач

Параметры мониторинга

Модуль предоставляет следующие параметры для мониторинга:

Основные метрики

  • payload - количество байт полезной нагрузки (multiplexer_payload)
  • encoded - количество закодированных байт (multiplexer_encoded)
  • fillers - количество пакетов-заполнителей (multiplexer_fillers)
  • stuffing - количество пакетов-наполнителей (multiplexer_stuffing)

Дополнительные метрики

  • trimmed_bytes - количество обрезанных байт (multiplexer_trimmed_bytes)
  • trimmed_frames - количество обрезанных кадров (multiplexer_trimmed_frames)
  • ts_overflow - переполнение TS потока (boolean)

Служебные таблицы

Multiplexer формирует все необходимые служебные таблицы DVB:

  • PAT (Program Association Table) - таблица ассоциации программ
  • PMT (Program Map Table) - таблица карты программ
  • SDT (Service Description Table) - таблица описания сервисов
  • EIT (Event Information Table) - таблица информации о событиях
  • NIT (Network Information Table) - таблица информации о сети

Требования DVB стандарта

Модуль обеспечивает соблюдение следующих требований:

  • CBR (Constant Bit Rate) - постоянная скорость передачи
  • PCR accuracy - точность Program Clock Reference
  • HRD buffer - требования к буферу гипотетического декодера
  • Равномерное перемешивание телеканалов в мультиплексе

Электронная программа передач (EPG)

Mcaster может генерировать MPTS потоки со встроенной электронной программой передач (EPG). Вам больше не нужно использовать дополнительный генератор EPG и ремультиплексор для добавления EPG к телеканалам.

В MPEG-TS потоках EPG хранится в таблицах информации о событиях (EIT). Mcaster может заполнять EIT в выходном потоке.

Два способа добавления EPG

Существует два способа для Mcaster добавить EPG в выходной MPTS:

  1. Копирование EIT из источника если программа передач в нем удовлетворительна
  2. Взятие EPG из XMLTV файлов и преобразование в EIT как для текущего мультиплексора (Actual), так и для других мультиплексоров в сети (Other)

Копирование EPG из источника

Для копирования EIT из исходного MPEG-TS потока добавьте опции EIT в конфигурацию мультиплексора:

transponder tp1 {
  eit {
    source copy://STREAMNAME;
  }
}

Замените STREAMNAME на имя исходного потока в конфигурации Mcaster.

Импорт EPG из XMLTV

Для импорта EPG из XMLTV файлов настройте мультиплексор следующим образом:

transponder tp1 {
  program 100 {
    title "program1"; 
    eit_title "example_title";
  };
  other @tp2;
  eit {
    xmltv_url xmltv_dir1;
    interval pf actual=1 other=2;
    interval schedule other=20;
  }
}

Параметры конфигурации

  • title — устанавливает значение ID канала из channel id в XMLTV файле
  • eit_title — устанавливает название канала из display-name в XMLTV
  • xmltv_url — устанавливает путь к директории с XMLTV файлами (может быть одним файлом)
  • interval pf|schedule actual=<INTERVAL 1> other=<INTERVAL 2> — устанавливает, как часто будут отправляться таблицы EIT

Перезагрузка EPG

Когда данные EPG обновляются в XMLTV файле, перезагрузите их с помощью API:

POST /streamer/api/v3/multiplexers/{name}/xmltv_upload

Важные замечания

  • EPG упаковывается в целевой битрейт
  • Версия EIT изменяется при обновлении расписания (число от 0 до 63)
  • XMLTV файлы могут содержать пересекающиеся передачи - Mcaster включает более раннюю
  • Интервалы по умолчанию: actual (текущая/следующая) 2 секунды, other (текущая/следующая) 4 секунды, actual (расписание) и other (расписание) 60 секунд

Note

Описание формата XMLTV файла можно найти на xmltv.org, а расписания вещания в этом формате доступны на teleguide.info.