SPTS-потоки¶
SPTS (Single Program Transport Stream) — поток MPEG-TS с одной программой; это основная единица обработки Perfect Streamer. Тип потока — SPTS или MPTS — выбирается при создании и не может быть изменён позже. Для SPTS-потока дополнительно выбирается тип контента (значения — как в интерфейсе): Default (audio + video), Audio only (звук без видео, радиоканалы) или Video only.
Скремблированные (закодированные) потоки поддерживаются: скремблирование определяется автоматически, и проверки элементарных потоков на это время приостанавливаются. Настройка «Скремблированный канал» объявляет поток постоянно скремблированным и отключает автоопределение.
Общие требования к входному потоку перечислены в Требования к входному потоку, протоколы приёма и передачи — в разделе Планирование и протоколы передачи данных. Обработка мультиплексов описана в MPTS-потоки. Создание и настройка потоков выполняются в веб-интерфейсе (Потоки).
Конвейер обработки¶
Конвейер SPTS-потока: входы, обработка на уровне потока (переключатель входов, TS-фильтр, анализатор, выравнивание битрейта, синхронизатор), подсистема OTT / DVR и выходы.¶
Все входы потока сходятся в переключатель входов, дальше поток проходит последовательные этапы обработки:
Переключатель входов — выбирает активный источник и переключает поток на резерв при аварии (Резервирование источников).
TS-фильтр — необязательная фильтрация и модификация MPEG-TS (Фильтрация MPEG-TS, Модификация потока).
Анализатор — непрерывная проверка валидности и измерение потока (Анализатор); по его вердикту переключатель входов признаёт источник аварийным. Данные анализатора использует также мозаика (Мозаика, отключается настройкой «Генерировать мозаику»), импорт EPG и декодер субтитров.
Выравнивание битрейта — необязательное заполнение до постоянного битрейта и исправление интервала PAT/PMT (Управление битрейтом).
Синхронизатор — выдача пакетов в темпе PCR с компенсацией сетевого джиттера (Синхронизация). Сюда же генератор EIT вставляет таблицы программы передач (Генератор EIT).
С выхода синхронизатора поток раздаётся на все выходы: транспортные протоколы (Peer-протоколы надёжной передачи), запись в файл, мультиплексор MPTS (Мультиплексор), транскодер (Транскодеры), а также в подсистему OTT / DVR (OTT и DVR). Источником SPTS-потока может служить и отдельная программа мультиплекса — вход-демультиплексор (тип demuxer) выделяет её из MPTS-потока или DVB-приёмника по номеру программы (Демультиплексор).
Резервирование источников¶
У потока может быть несколько входов, но активен всегда только один. Порядок входов в списке задаёт приоритет: первый — основной, остальные — резервные. Если активный вход признан аварийным, поток переключается на следующий по списку; после последнего входа перебор продолжается с первого. Вход, поставленный на паузу, при переключении не учитывается.
Аварийность определяет анализатор: вход считается аварийным, если поток не проходит проверку валидности или данные не поступают дольше заданного таймаута. Работа потока на резервном входе фиксируется оповещением (Оповещения (алертер)).
Настройки переключения — на вкладке «Поток» редактора потока (Настроить поток):
- «Таймаут потока (с)»
Время без валидного входного потока, после которого выполняется переключение на следующий вход. По умолчанию 30 секунд.
- «Интервал проверки (с)»
Период повторной проверки источников. По умолчанию 60 секунд.
- «Повторно проверять основной вход»
Пока поток работает на резервном входе, входы выше по списку повторно проверяются с интервалом проверки. Как только более приоритетный источник снова валиден, поток возвращается на него. Включено по умолчанию.
Фильтрация MPEG-TS¶
По умолчанию поток передаётся как есть. Фильтрация применяется на двух уровнях: правила PID — отдельно на каждом входе, фильтры таблиц — на уровне потока.
Правила PID настраиваются на вкладке «MPEG-TS PID» окна входа (Редактор входа и выхода):
- «Принимать PID (белый список)»
Список разрешённых PID. Если список пуст, разрешено всё, кроме запрещённого чёрным списком.
- «Отклонять PID (чёрный список)»
Список запрещённых PID. PID, указанный одновременно в обоих списках, отклоняется.
Таблица PMT после фильтрации регенерируется по фактическому составу элементарных потоков. Правила PID применяются до автоматической раскладки PID (Автоматическая раскладка PID), если она включена.
Фильтры уровня потока — на вкладке «MPEG-TS» редактора потока, секция «Фильтры» (по умолчанию все выключены):
- «Очищать ненужные таблицы»
Удаляет служебные данные, не относящиеся к программе, и элементарные потоки неизвестных типов; потоки известных типов (видео, звук, телетекст, субтитры) и таблицы PAT/PMT сохраняются. Отдельные таблицы (SDT, EIT, NIT, TDT, CAT) управляются собственными фильтрами.
- «Удалять CAT / ECM / EMM»
Удаляет таблицы и сообщения систем условного доступа (CAS), включая CA-дескрипторы из PMT — например, чтобы очистить остатки CAS после дескремблирования.
- «Удалять EIT»
Удаляет таблицы программы передач источника. По умолчанию EIT проходит насквозь.
- «Удалять NIT», «Удалять TDT»
Удаляют таблицы сети и меток времени источника.
- «Удалять телетекст», «Удалять субтитры»
Удаляют потоки телетекста и DVB-субтитров вместе с их записями в PMT.
- «Удалять исходную SDT» (секция «SDT»)
Удаляет таблицу описания сервиса источника — например, при передаче потока на дальнейшее мультиплексирование. При назначении собственного имени сервиса (Модификация потока) исходная SDT заменяется автоматически, отдельно включать этот фильтр не нужно.
Примечание
Удаление обязательных таблиц (SDT, NIT, TDT, EIT, CAT) нарушает требования TR 101 290 к их присутствию в потоке — это осознанный выбор оператора, уместный, например, при передаче потока на дальнейшее мультиплексирование. Кроме того, любая фильтрация меняет состав пакетов потока; о влиянии на точность PCR см. Управление битрейтом.
Модификация потока¶
Собственные данные сервиса задаются в секции «SDT» вкладки «MPEG-TS». Генерацию таблицы включает поле «Имя сервиса» (а также активная генерация EIT из EPG): если в источнике нет SDT, таблица генерируется; если есть — заменяется сгенерированной. Поля «Имя провайдера» и «Язык» заполняют соответствующие поля генерируемой таблицы. Настройка «ID сети» задаёт идентификатор сети для генерируемых таблиц EIT, когда источник не сообщает собственный идентификатор сети; если идентификатор в источнике есть, используется он.
Номер программы переназначается в секции «Номер программы»: включите «Изменить номер программы» и задайте «Новый номер программы». Таблицы PAT и PMT регенерируются с новым номером; SDT и EIT также перегенерируются.
«Фиксировать интервал PAT/PMT» — регенерирует PAT/PMT и вставляет их с интервалом, соответствующим TR 101 290. Применяется к источникам с редкими или нерегулярными таблицами.
Переназначение PID и языков выполняется на входе, вкладка «MPEG-TS PID» окна входа:
- «Переназначить PID»
Пары «Из PID» / «В PID» — замена идентификаторов элементарных потоков, например для приведения потока к плану PID сети. При включённой автоматической раскладке PID (Автоматическая раскладка PID) эти пары не действуют.
- «Переназначить язык аудио»
Пары «Аудио PID» / «Новый язык» — замена языка звуковой дорожки в PMT.
Генерация EIT из внешнего источника EPG включается в секции «Генерировать EIT из EPG» вкладки «Поток»: выбираются «Источник EPG» и «Канал EPG», и в поток вставляются таблицы EIT с программой передач (Генератор EIT). Обратная операция — настройка «Извлекать EIT в базу данных EPG», которая экспортирует программу передач из потока в базу EPG узла (Импорт EPG/XMLTV).
Для входов, принимающих исходный транспортный поток, доступно программное дескремблирование BISS: на входе задаётся ключ BISS-1 или BISS-E, и поток расшифровывается до анализа и дальнейшей обработки. Приём скремблированных сервисов с DVB-приёмника (CAM, BISS на уровне адаптера) описан в DVB-приёмник.
Автоматическая раскладка PID¶
По умолчанию идентификаторы элементарных потоков переходят из источника в выходной поток без изменений, поэтому при переключении на резервный вход раскладка PID на выходе меняется вслед за источником. Автоматическая раскладка назначает PID сама, по одному и тому же правилу для любого входа: план PID выходного потока остаётся неизменным независимо от того, какой источник сейчас активен.
Режим доступен только для SPTS и включается в секции «MPEG-TS» вкладки «MPEG-TS» редактора потока:
- «Автоматическая раскладка PID»
Включает режим.
- «Базовый PID»
Первый PID окна: от 32 до 8127, по умолчанию 32. Нижняя граница выводит окно за пределы диапазона, зарезервированного под таблицы PSI/SI, верхняя оставляет всё окно ниже PID нулевых пакетов.
Программа перенумеровывается в окно из 64 PID, начинающееся с базового:
PID |
Назначение |
|---|---|
базовый |
PMT |
базовый + 1 |
видео |
далее |
звуковые дорожки |
далее |
остальные элементарные потоки: телетекст, DVB-субтитры, данные, SCTE-35 |
далее |
PCR, если он не передаётся в одном из перечисленных потоков |
далее |
ECM: сначала по дескрипторам уровня программы, затем по дескрипторам отдельных потоков |
с конца окна вниз |
EMM |
Внутри каждой группы сохраняется порядок исходной таблицы PMT. Если видео в программе нет, раскладка сжимается: сразу за PMT идёт первая звуковая дорожка. EMM выделяются с конца окна, поскольку таблица CAT разбирается независимо от PMT и может прийти раньше — их адреса не должны зависеть от числа элементарных потоков.
Таблицы PAT, PMT и CAT пересобираются под новую раскладку. SDT, NIT, EIT и TDT не изменяются: ссылок на PID они не содержат.
Что учесть при включении режима:
Режим принудительно включает фильтрацию MPEG-TS, поэтому PID, не объявленные в PMT и CAT, наружу больше не проходят. Поток, который полагался на транзит необъявленных PID, их потеряет.
Ручное переназначение PID на входах не действует и игнорируется, о чём в журнал пишется предупреждение. Веб-интерфейс скрывает эти поля, пока режим включён; сохранённые пары не теряются и возвращаются при его выключении.
Списки приёма и отклонения PID продолжают работать и применяются до перенумерации: слот получают только выжившие элементарные потоки, и пропусков в окне не остаётся (Фильтрация MPEG-TS).
На вход-транскодер (Транскодеры) и вход тестового генератора (Тестовые потоки) режим не действует: там план PID строит кодер или генератор, поэтому их собственные поля PMT PID остаются доступными.
Если программа в окно не помещается, перенумерация не выполняется вовсе — раскладка остаётся исходной, а в журнал идёт предупреждение; наполовину перенумерованный поток не выпускается.
Изменение любой из двух настроек применяется на лету: сам поток не перезапускается, но его входы и выходы переподнимаются — несколько секунд на пересинхронизацию.
В статистике потока блок «Информация о медиа — источник» показывает PID, пришедшие на вход, а «Информация о медиа — результат» и таблица битрейтов по PID — назначенные; при включённом режиме расхождение между ними штатно.
Автоматическая раскладка PID не связана с назначением PID в мультиплексоре MPTS (Назначение PID) — это отдельная настройка muxer-входа.
Управление битрейтом¶
Режим управления битрейтом задаётся полем «Режим битрейта» на вкладке «MPEG-TS» (значения — как в интерфейсе):
- Original (по умолчанию)
Поток передаётся без изменений; метки PCR источника не пересчитываются.
- VBR
Удаляет NULL-пакеты источника, что минимизирует битрейт. Подходит, когда поток используется только для OTT-вещания или транзита. Метки PCR при этом не пересчитываются, поэтому точность PCR по TR 101 290 на выходе не гарантируется.
- CBR (auto stuffing)
Выравнивает битрейт вставкой NULL-пакетов (stuffing) до постоянного значения. Целевой битрейт определяется автоматически: он фиксируется через несколько секунд после включения, повышается при устойчивом превышении и постепенно снижается, если пик контента долго остаётся ниже цели. Смена цели не прерывает выдачу потока.
- CBR (explicit stuffing)
То же, но целевой битрейт задаётся явно полем «Битрейт заполнения (kbps)». Задавайте значение с запасом больше фактического битрейта контента.
В режимах CBR метки PCR пересчитываются по фактически переданным байтам, поэтому выход соответствует требованиям TR 101 290 к точности PCR. Дополнительно при активном заполнении на выходе поддерживается частота повторения PCR в пределах нормы даже на длинных видеокадрах. Анализатор в этом случае измеряет именно выдаваемый, выровненный поток (Анализатор).
Когда нужен CBR. Любая операция, которая вставляет или удаляет пакеты, — фильтры таблиц и PID, генерация SDT и EIT, исправление интервала PAT/PMT, смена номера программы, а также сам режим VBR — меняет положение контента относительно его меток PCR. Если получатель потока требует соответствия TR 101 290, например при DVB-вещании, включите режим CBR: заполнение маскирует эти изменения пересчётом PCR. Для потока после транскодера включите режим CBR на потоке-приёмнике (PCR и битрейт выходного потока).
Текущее состояние заполнения — целевой битрейт и скорость вставки NULL-пакетов — отображается в данных активного входа на странице потока (Потоки, секция «Заполнение»; секция видна, только пока заполнение активно).
Синхронизация¶
Синхронизатор выдаёт пакеты на выходы в темпе меток PCR источника — поэтому валидные PCR обязательны для входного потока. Между приёмом и выдачей поток задерживается в джиттер-буфере, который сглаживает неравномерность прихода пакетов из сети.
Буфер настраивается отдельно на каждом входе (окно входа, Редактор входа и выхода; дополнительные настройки, названия — как в интерфейсе):
- Auto jitter buffer
Автоматический подбор задержки по типу входа: для входов TCP и HLS используется увеличенный буфер, для остальных — стандартный. Включено по умолчанию.
- Jitter buffer (ms)
Размер буфера вручную, когда автоматический режим выключен (по умолчанию 500 мс). Увеличьте значение, если на нестабильной сети буфер регулярно опустошается.
- PCR discontinuity window (ms)
Окно допустимого скачка PCR (по умолчанию 1000 мс). Скачок за пределы окна считается разрывом потока и вызывает жёсткую пересинхронизацию.
Медленное расхождение между темпом PCR источника и часами узла устраняет компенсатор дрейфа: корректировка применяется плавно, микросдвигами, без жёсткой пересинхронизации и без прерывания выдачи. Управление — на вкладке «Анализ» редактора потока: «Компенсация дрейфа синхронизации» (включена по умолчанию) и «Мягкое окно дрейфа синхронизации (ms)» — зона нечувствительности, внутри которой корректировка не применяется (по умолчанию 500 мс). Жёсткая пересинхронизация остаётся резервным механизмом на случай настоящих разрывов потока.