Медиа.маги Документация

Last updated

Предкодирование для вещания MPEG-TS

1. Что создаёт этот процесс

Создаёт поток MPEG-TS, пригодный для прямого приёма вещательными системами плейаута и головными станциями IPTV, с битстримом H.264 и аудио AAC, мультиплексированными на фиксированном muxrate, чтобы выход совпадал с целевым профилем распространения.

2. Когда использовать

  • Вы доставляете предкодированные файлы MPEG-TS в вещательный сервер плейаута, головную станцию IPTV или приёмник контрибуции, ожидающий фиксированный muxrate и видео H.264 BT.709.
  • Вы готовите контрибуционные фиды 1080p для ремультиплексирования ниже по потоку и хотите закрепить битрейт, структуру GOP и цветовую сигнализацию на стороне кодера, а не оставлять их приёмнику.
  • Вы архивируете длинный контент как MPEG-TS, чтобы сегментаторы и origin-серверы могли принять его без предварительной переобёртки в другой контейнер.

3. Входы

  • Исходное видео — любой контейнер и кодек, которые платформа может демультиплексировать. Типичный вход — мастер HD с одной видеодорожкой и одной аудиодорожкой.
  • Переменные:
    • $In — URL исходного видео.
    • $Out_1920x1080 — URL, куда записывается готовый файл MPEG-TS.

4. Выход

  • Файл — контейнер MPEG-TS с видеодорожкой H.264 High @ Level 4 на 9800 кбит/с (зафиксировано в CBR: Bitrate = Min bitrate = Max bitrate = Buffer size) при 1920×1080, 25 кадров/с, DAR 16:9, yuv420p с основными цветами, матрицей и передачей BT.709, плюс стереодорожка AAC на 128 кбит/с и 48 кГц.
  • Мультиплексирование — транспортный поток мультиплексируется на фиксированной общей скорости 10000 кбит/с, с установленными флагами resend headers и initial discontinuity, чтобы приёмники могли захватить поток на лету.
  • Назначение — готовый файл записывается на URL, заданный в $Out_1920x1080.

5. Обзор процесса

Процесс предкодирования для вещания MPEG-TS на холсте

Источник забирается из $In и разделяется на видео- и аудиопотоки. Видео нормализуется в yuv420p, фиксируется на 25 кадрах/с и соотношении сторон при отображении 16:9, масштабируется до 1920×1080, затем кодируется x264 в режиме ABR на 9800 кбит/с со всеми четырьмя границами контроля битрейта, закреплёнными на одном значении, и цветовой сигнализацией BT.709. Параллельно аудио приводится к знаковому 16-битному PCM, пересэмплируется до 48 кГц и кодируется AAC на 128 кбит/с. Два потока мультиплексируются в MPEG-TS на фиксированных 10000 кбит/с с установленными флагами resend headers и initial discontinuity, и полученный транспортный поток загружается на $Out_1920x1080.

6. Настройка по узлам

Pixel Format (vf/format)

Форма «Pixel Format Edit properties»

Приводит отображённое видео к 8-бит 4:2:0 цветовой раскладке, которую ожидает кодер H.264 ниже по потоку.

Параметры этого примера:

  • Formatyuv420p. 8-бит 4:2:0 планарный Y′CbCr — единственная раскладка цветности, которую вещательные декодеры плейаута гарантированно принимают, и формат, в котором x264 выдаёт потоки High @ Level 4.

FPS (vf/fps)

Форма «FPS Edit properties»

Приводит видео к фиксированной частоте кадров перед кодером.

Параметры этого примера:

  • Frame Rate25/1. 25 кадров в секунду, базовая частота европейского вещания. Закрепление здесь означает, что кодер и мультиплексор планируют вокруг известного ритма кадров, а не выводят его из источника.

DAR (vf/dar)

Форма «DAR Edit properties»

Штампует соотношение сторон при отображении, которое плееры и приёмники ниже по потоку читают из метаданных потока.

Параметры этого примера:

  • Aspect Ratio16:9. Стандартное широкоэкранное HD-соотношение — форма, в которой растр 1920×1080 предназначен к отображению.

Scale (vf/scale)

Форма «Scale Edit properties»

Изменяет размер подготовленного видео до целевого вещательного растра перед x264. Задайте растр здесь, чтобы кодер, контроллер битрейта и мультиплексор работали с одними размерами.

Параметры этого примера:

  • Resolution1920x1080. Full HD — растр поставки для потока MPEG-TS.
  • Sample Aspect Ratio (SAR) — выключено. Соотношение сторон при отображении уже зафиксировано этапом vf/dar выше, поэтому путь подстройки SAR остаётся выключенным.

Полный список параметров и компромиссов см. в Scale.

x264 (x264)

Форма «x264 Edit properties»

Кодирует подготовленное видео 1080p25 как H.264 с фиксированной скоростью, цветовой сигнализацией и структурой GOP, которые ожидает вещательный приёмник. Четыре границы контроля битрейта (Bitrate, Min bitrate, Max bitrate, Buffer size) заданы одним значением, чтобы кодер выдавал фактически CBR-поток — то, под что рассчитан мультиплексор MPEG-TS ниже по потоку.

Параметры этого примера:

  • H264 Codec Profilehigh. High profile даёт кодеру доступ к B-кадрам, CABAC и преобразованиям 8×8 — инструментам кодирования, которые поддерживает каждый современный вещательный декодер и на которые нацелено большинство спецификаций интероперабельности контрибуции.
  • Presetmedium. Стандартный компромисс скорость/качество; достаточно быстро, чтобы держать пропускную способность кодирования, и всё ещё извлекает большую часть эффективности сжатия x264.
  • H264 Codec Level4. Ограничивает максимальный битрейт, скорость макроблоков и размер кадра уровнем, согласованным с профилями контрибуции 1080p25 и головных станций IPTV.
  • Rate ControlABR. Средний битрейт. В паре с идентичными min/max/buffer ниже эта конфигурация выдаёт фактически CBR-поток — то, что ожидает фиксированный слот 10000 кбит/с мультиплексора MPEG-TS.
  • Bitrate9800 kbps. Средний видеобитрейт, подобранный так, чтобы уместиться в muxrate транспортного потока 10000 кбит/с рядом с аудио AAC и накладными расходами TS.
  • Min bitrate9800 kbps. Закреплён на среднем, чтобы кодер не мог опуститься ниже вещательной цели.
  • Max bitrate9800 kbps. Закреплён на среднем, чтобы сложная сцена не выскочила за muxrate.
  • Buffer size9800 kbps. Буфер VBV, с которым работает контроллер битрейта. Задание его равным битрейту держит окно контроля битрейта узким, а выход — близким к CBR.
  • Key Interval50. Один ключевой кадр каждые две секунды при 25 кадрах/с — ритм GOP, который ожидают вещательные и IPTV-приёмники, и стандартная точка склейки для замены потока ниже по потоку.
  • B-Frames2. Два подряд идущих B-кадра на GOP. Достаточно, чтобы выиграть в эффективности сжатия на этом битрейте, не увеличивая буфер декодирования приёмника.
  • Reference Frames4. Четыре опорных кадра, доступных оценке движения, — базовая величина High @ Level 4.
  • Tunezerolatency. Отключает упреждение и эвристики B-пирамиды x264, чтобы кодер выдавал кадры с минимальной добавленной задержкой — важно, когда выход потребляется живым приёмником или сервером плейаута.
  • Color Spacebt709. Коэффициенты матрицы BT.709 — HD-матрица цвета, которую применяет каждый современный вещательный декодер.
  • Color Transferbt709. Характеристики передачи BT.709.
  • Color Primariesbt709. Основные цвета BT.709. Задание всех трёх цветовых полей гарантирует, что декодер ниже по потоку нарисует HD-цвет правильно, даже если сигнализация источника отсутствовала или была неверной.

Полный список параметров и компромиссов см. в x264.

Sample Format (af/aformat)

Форма «Sample Format Edit properties»

Приводит отображённое аудио к известному формату сэмплов PCM перед пересэмплером и кодером AAC. Закрепление здесь не даёт плавающему или 24-битному аудио источника сбить кодер.

Параметры этого примера:

  • Formats16. Знаковый 16-битный чередующийся PCM — стандартный промежуточный формат, который потребляет кодер AAC.

Sample Rate (af/aresample)

Форма «Sample Rate Edit properties»

Пересэмплирует аудио к целевой частоте перед кодером AAC, чтобы закодированная дорожка имела фиксированную и предсказуемую частоту дискретизации.

Параметры этого примера:

  • Rate48000 Hz. 48 кГц — базовая частота вещательного и контрибуционного аудио, и частота, которую AAC кодирует нативно для доставки TS.

AAC (aac)

Форма «AAC Edit properties»

Кодирует пересэмплированное аудио как AAC перед мультиплексором MPEG-TS. Muxrate ниже по потоку выделяет достаточно запаса для стереодорожки AAC на этом битрейте.

Параметры этого примера:

  • Bitrate128 kbps. Стандартный стереобитрейт AAC для вещательной контрибуции и приёма головной станцией IPTV — достаточно высокий для прозрачных диалогов и музыки, достаточно низкий, чтобы оставить основную часть muxrate видео H.264.

Полный список параметров и компромиссов см. в AAC.

TS (ts)

Форма «TS Edit properties»

Мультиплексирует закодированные видео H.264 и аудио AAC в единый транспортный поток MPEG-TS на фиксированном muxrate, с установленными дружественными к приёмнику флагами, чтобы сервер плейаута ниже по потоку мог захватить поток из любой точки.

Параметры этого примера:

  • Filename — пусто. Мультиплексор выводит имя файла из контекста выше по потоку, а шаг загрузки записывает результат в $Out_1920x1080.
  • Muxrate10000 kbps. Фиксированная общая скорость транспортного потока. Подобрана так, чтобы уместить видео H.264 на 9800 кбит/с в CBR плюс аудио AAC на 128 кбит/с с запасом на таблицы PSI/PMT, обновления PAT/PMT и накладные расходы TS.
  • Flags — Resend headers — включён. Мультиплексор переизлучает таблицы PAT/PMT потока периодически, а не только в начале, чтобы приёмник, настраивающийся посреди потока, быстро их нашёл и начал декодировать.
  • Flags — Initial discontinuity — включён. Помечает первый пакет выхода индикатором разрыва транспортного потока — используется ремультиплексорами и сплайсерами ниже по потоку, чтобы пометить этот поток как свежий источник, а не продолжение предыдущего фида.

7. Запуск

  1. Откройте Процессы → Создать и либо соберите граф выше, либо продублируйте существующий шаблон предкодирования для вещания MPEG-TS.
  2. Задайте $In равным URL исходного видео, а $Out_1920x1080 — URL, куда должен быть записан готовый файл MPEG-TS.
  3. Нажмите Запустить либо привяжите процесс к папке мониторинга для автоматического приёма в плейаут.
  4. Отслеживайте ход на странице Задачи; готовый файл TS попадёт на URL, заданный в $Out_1920x1080.

8. Варианты

  • Поднимите Muxrate и совпадающие границы контроля битрейта x264 вместе ради более качественного контрибуционного фида. Держите muxrate на несколько сотен кбит/с выше видеобитрейта, чтобы аудио AAC и накладные расходы TS ещё вмещались.
  • Ослабьте контроль битрейта, разнеся Bitrate, Max bitrate и Buffer size, чтобы допустить более широкое окно VBR, когда назначение — файловый архив, а не живой слот плейаута.
  • Замените vf/scale другим вещательным растром (например, 1280x720 для контрибуции 720p) и пересчитайте бюджет битрейта; остальная часть графа остаётся той же.
  • Уберите флаг Initial discontinuity, когда выход — разовый файл, доставляемый для вставки в плейлист, а не присоединяемый непрерывный фид.

9. Связанное

  • AAC
  • Scale
  • x264
  • H.264 HD — тот же базовый конвейер x264 + AAC, выдающий веб/превью-поставку MP4 вместо вещательного транспортного потока.

10. Заметки

Вещательный характер поставки рождается из трёх параметров мультиплексора и кодера, действующих вместе. Muxrate в 10000 кбит/с даёт транспортному потоку фиксированный слот, под который приёмник может буферизоваться; совпадающие закреплённые в CBR Bitrate/Min/Max/Buffer на x264 удерживают видео H.264 внутри этого слота; а BT.709 Color Primaries, Color Transfer и Color Space штампуют HD-цветовую сигнализацию на битстрим, чтобы принимающий декодер рисовал цвет правильно, не откатываясь к своим значениям по умолчанию.

Медиа.маги Документация