Добавить в корзинуПозвонить
Найти в Дзене
Video compression guru

Мультиплексирование в MPEG Transport Stream: как это устроено и почему важно

MPEG Transport Stream — стандарт, которому уже почти 30 лет, но он до сих пор остаётся основой DVB-вещания и IPTV, да и в OTT встречается нередко. Давайте разберёмся, зачем он вообще нужен, какие параметры важно контролировать, и как выглядят типичные сценарии работы с TS на практике. Когда вы смотрите телепередачу, вам кажется, что по сети идёт просто видео. На самом деле это целый набор данных: Всё это нужно упаковать так, чтобы звук не отставал от картинки, субтитры появлялись вовремя, а приёмник понимал, что с чем связано. Именно эту задачу и решает стандарт MPEG Transport Stream — он описывает формат медиаконтейнера, в который укладываются все эти элементарные потоки. Процесс мультиплексирования непрост: он требует высокой точности и учёта множества параметров. Особенно это актуально для вещания в реальном времени, когда поток поступает на вход, обрабатывается и тут же уходит дальше. Чтобы понять, насколько корректно работает мультиплексор, существует специальный стандарт ETSI TR
Оглавление

MPEG Transport Stream — стандарт, которому уже почти 30 лет, но он до сих пор остаётся основой DVB-вещания и IPTV, да и в OTT встречается нередко. Давайте разберёмся, зачем он вообще нужен, какие параметры важно контролировать, и как выглядят типичные сценарии работы с TS на практике.

Что такое MPEG-TS и зачем нужно мультиплексирование

Когда вы смотрите телепередачу, вам кажется, что по сети идёт просто видео. На самом деле это целый набор данных:

  • видео
  • аудио (одна или несколько дорожек)
  • субтитры
  • телетекст
  • служебные данные для синхронизации
  • метки для рекламных вставок (SCTE-35), которые используются сплайсерами для подмены контента

Всё это нужно упаковать так, чтобы звук не отставал от картинки, субтитры появлялись вовремя, а приёмник понимал, что с чем связано. Именно эту задачу и решает стандарт MPEG Transport Stream — он описывает формат медиаконтейнера, в который укладываются все эти элементарные потоки.

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

Как оценить качество: стандарт ETSI TR 101 290

Чтобы понять, насколько корректно работает мультиплексор, существует специальный стандарт ETSI TR 101 290. Он описывает параметры, которые необходимо контролировать, и классифицирует ошибки по приоритетам.

Самые критичные — ошибки первого приоритета. Вот два показательных примера:

  • Continuity_count error — нарушен счётчик непрерывности TS-пакетов. Это означает, что в процессе передачи был потерян один или несколько пакетов. На экране это может выглядеть как «рассыпавшееся» изображение или артефакты.
  • PID error — элементарный поток, заявленный в таблице PMT, пропал. Например, субтитры были обозначены в PMT, но данные по ним не передаются. Приёмник ожидает поток, а его нет.
Ошибки ETSI TR 101 290
Ошибки ETSI TR 101 290

Важно понимать: степень влияния этих ошибок на конечный результат сильно зависит от того, что происходит с потоком дальше. DVB-вещание через модулятор — самый требовательный сценарий. Нарезка на чанки для HLS — намного мягче.

DVB: самый требовательный случай

Если выходной поток отправляется на DVB-модулятор, требования к качеству мультиплексирования максимальные.

Модуляторы чувствительны к:

  • точности PCR (Program Clock Reference),
  • интервалу повторения PCR,
  • стабильности CBR,
  • IAT (Inter-Arrival Time) — интервалы между пакетами,
  • наличию и корректности всех служебных таблиц.

Неправильная расстановка PCR может привести к проблемам синхронизации уже на уровне приема.

Для сравнения: если поток дальше нарезается на HLS-сегменты для OTT, точность PCR практически не играет роли. Поэтому требования к мультиплексированию сильно зависят от конечного сценария использования.

-3

Типичные сценарии работы с мультиплексором

Рассмотрим несколько наиболее распространенных задач, с которыми сталкиваются операторы и интеграторы.

1. Транскодирование SPTS

Пожалуй, самый распространённый случай. Что происходит:

  • На вход поступает SPTS (например, UDP multicast).
  • Поток разбирается на элементарные составляющие: видео, аудио, телетекст, SCTE‑35.
  • Видео и аудио транскодируются (например, MPEG‑2 → AVC, MPEG → AAC). Телетекст и SCTE-35 метки отправляются на выход как есть, без преобразований, также можно просто их исключить и не передавать на выход.
  • Потоки снова собираются мультиплексором.
  • Результат отправляется в сеть. Для отправки можно использовать и другой протокол, например, RTP, SRT или RIST.
-4

2. Рестриминг SRT→UDP с ремультиплексированием

Нередко нужно принять поток по SRT и раздать его дальше через UDP multicast. Теоретически можно просто «пробросить» поток без изменений. Но на практике часто возникают проблемы:

  • ошибки PCR,
  • нестабильные интервалы,
  • предупреждения анализаторов.

В таких случаях помогает ремультиплексирование:

  • корректировка PCR,
  • добавление паддинга,
  • выравнивание битрейта.

Это позволяет привести поток к более «аккуратному» состоянию перед дальнейшей передачей.

-5

3. Разбор MPTS на SPTS (демукс)

Обратная задача: на входе один многопрограммный поток (MPTS) с несколькими каналами, на выходе — отдельные однопрограммные потоки (SPTS), каждый со своим каналом. Например, принять один UDP multicast с 10 программами и раздать их как 10 отдельных потоков.

-6

4. Статистическое мультиплексирование

Это относительно новая функция, на которую в последнее время приходит всё больше запросов.

Представьте: у вас есть полоса 50 Мбит/с и 10 каналов. Если просто поделить полосу поровну, каждый получит по 5 Мбит/с (CBR). Но это неэффективно: канал с новостями, где картинка почти не меняется, «съест» столько же, сколько канал с динамичным экшеном.

Statmux решает эту проблему: битрейт перераспределяется между каналами динамически, в зависимости от сложности сцены. Каждый энкодер оценивает сложность текущего контента и передаёт эти данные центральному анализатору. Тот собирает информацию от всех энкодеров и отправляет каждому рекомендацию по битрейту — исходя из общей полосы и текущей нагрузки.

Результат: те же 10 каналов в той же полосе, но заметно лучшего качества.

-7

Мультиплексирование — это фундамент, на котором строится всё остальное в телевизионном вещании. Разобравшись с ним, гораздо проще говорить о следующих шагах: скремблировании, статистическом мультиплексировании и выборе правильного железа. Об этом — в следующих материалах.