Skip to content

Метки для врезки рекламы

Метод динамической вставки рекламы (DAI) используется для добавления рекламных роликов в линейные live потоки, такие как ТВ трансляции. Рeгиональный оператор может, используя DAI, врезать в трансляции "местную" рекламу.

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

Метки создаются по разным стандартам, самый популярный из которых SCTE-35. Физически метки представляют собой тэги в клиентском манифесте потока, поэтому метки необходимо создавать отдельно для передачи по каждому протоколу (из числа тех, которые поддерживают adaptive streaming).

Flussonic может читать метки и преобразовывать их в другой формат. Он работает с метками в форматах SCTE-35, SCTE-104 и AWS и распознает события splice_insert.

Cледующие форматы меток считываются из потоков разных типов:

  • HLS — метки в формате SCTE-35, AWS (см. описание меток в документации AWS), а также простые cue метки входного потока.
  • MPEG-TS — метки в формате SCTE-35.
  • Видео с карт Decklink — SCTE-104 markers.

Это можно свести в таблицу ниже:

Протокол потока Метка вставки рекламы
MPEG-TS SCTE-35
HLS SCTE-35, AWS
SDI SCTE-104

Пример: Необходимо прочитать метки SCTE-35 в транспортном потоке и преобразовать их в стандарт, пригодный для вещания по HLS.
Flussonic распознает метки в захваченном потоке, автоматически преобразует их в указанный стандарт и добавляет в манифест для проигрывания у клиента.

Какие преобразования меток врезки рекламы поддерживает Flussonic

Flussonic Media Server преобразует метки врезки рекламы из одного формата в другой и передаёт их.

Метки из MPEG-TS

  • из формата MPEG-TS SCTE-35 —> в формат MPEG-TS SCTE-35
  • из формата MPEG-TS SCTE-35 —> в формат HLS AWS
  • из формата MPEG-TS SCTE-35 —> в формат HLS SCTE-35
  • из формата MPEG-TS SCTE-35 —> в формат VANC SCTE-104

Таким образом, для входящих MPEG-TS потоков с SCTE-35 метками можно указать, чтобы Flussonic перевел метки в AWS или SCTE-35 для HLS или же в SCTE-104 для VANC. Тогда при обращении к потоку по HLS или SDI в нём будут метки уже в указанном формате (AWS, SCTE-35 или SCTE-104).

Для вывода в MPEG-TS метки не нужно преобразовывать в SCTE-35, они передаются автоматически в том случае, если они были приняты из входного MPEG-TS.

Метки из HLS

  • из HLS cue меток, HLS SCTE-35 или HLS AWS —> в HLS AWS или HLS SCTE-35 соответственно
  • из HLS cue меток, HLS SCTE-35 или HLS AWS —> в MPEG-TS SCTE-35

В зависимости от того, какие метки какого формата были во входящих HLS потоках, их можно преобразовать в SCTE-35 либо AWS для вывода в HLS. Для вывода в MPEG-TS метки можно преобразовать в SCTE-35.

  • из VANC SCTE-104 —> в MPEG-TS SCTE-35 или HLS SCTE-35

По умолчанию Flussonic считывает маркеры SCTE-104 в формате VANC с карт захвата Decklink. Чтобы выключить чтение из VANC, используйте переменную среды STREAMER_VANC_OFF=true.

Маркеры автоматически передаются в формате SCTE-35 в выходные потоки MPEG-TS и HLS, никаких настроек преобразования не требуется.

Чтобы запретить отключить чтение SCTE-104 меток:

  1. Отредактируйте unit файл сервиса Flussonic (/lib/systemd/system/flussonic.service), используя systemd override:
    # systemctl edit flussonic
Эта команда откроет текстовый редактор (обычно `nano`).
  1. Добавьте строки:
    [Service]
    Environment=STREAMER_VANC_OFF=true
Нажмите `Сtrl-X`, затем `Y`, чтобы сохранить и выйти.
  1. Перезапустите Flussonic:
    # service flussonic restart

Настройка преобразования меток врезки рекламы

Чтобы получить метки в выходном потоке, необходимо:

  • включить чтение и обработку меток во входном потоке
  • указать формат меток, который вы хотите получить в выходном потоке.

Всё это нужно указывать в настройках входного потока.

Чтение меток во входном потоке

Чтобы включить чтение меток во входящем потоке, к адресу потока добавьте следующую опцию:

  • scte35=true (для MPEG-TS) — включить чтение и обработку SСTE-35 меток из входного MPEG-TS потока.

  • ad=true (для HLS) — включить чтение и обработку меток из входного HLS потока (поддерживается чтение меток как в AWS формате, так и простых cue-меток).

Для управления чтением меток SCTE-104 из VANC добавьте или удалите переменную окружения STREAMER_VANC_OFF=true.

Пример

url tshttp://FLUSSONIC-IP/STREAM_NAME scte35=true;

Так Flussonic будет считывать метки во входящем MPEG-TS потоке.

Конвертация меток

Следующий шаг — задать формат меток для выходного потока, запрошенного по HLS.

Замечания.

В выходной MPEG-TS метки (SСTE-35) передадутся сами, если вы настроили их чтение из входного MPEG-TS (scte35=true).

Метки SCTE-104 из VANC будут переданы в MPEG-TS или HLS автоматически. Для управления чтением меток SCTE-104 из VANC, добавьте или удалите переменную окружения STREAMER_VANC_OFF=true.

Для конвертации меток добавьте в настройки входящего потока директиву hls_scte35.

Синтаксис:

hls_scte35 aws|scte35|false;

, где:

  • aws — метки AWS в выходном HLS
  • scte35 — метки SСTE-35 в выходном HLS
  • false — не включать метки в выходной поток.

Пример

hls_scte35 scte35;

Flussonic проставит метки в формате SСTE-35 в выходной HLS поток.

Директива hls_scte35, задающая выходной формат меток, имеет смысл только для вывода в HLS.

Пример из двух частей

В примере ниже мы: 1. Получим SСTE-35 метки из MPEG-TS 2. Сконвертируем метки в HLS AWS для использования в выходном потоке, запрошенном по HLS.

Получение MPEG-TS SСTE-35 меток (scte35=true), конвертация их в AWS для этого потока, передаваемого по HLS (hls_scte35 aws):


stream STREAM_NAME {
    url tshttp://STREAMER:80/INPUTSTREAM/mpegts scte35=true;
    hls_scte35 aws;
}

Теперь если запросить этот поток по HLS, в нём будут метки в формате AWS.

Кроме того, есть возможность прочитать эти метки и задать возможность их дальнейшего вывода в формате SCTE-35 при проигрывании потока по HLS, подключившись к получившемуся потоку локально по HLS:


stream STREAM_NAME_HLS {
    url hls://localhost/STREAM_NAME/mono.m3u8 ad=true;
    hls_scte35 scte35;
}

Проверка потока на наличие меток SCTE-35

Если нужно убедиться, что выходной поток действительно содержит метки SСTE-35, посмотрите логи Flussonic. Flussonic создает событие 'scte35', оно находится на стандартном уровне журнала. В журнале /var/log/flussonic/flussonic.log будут отображаться сообщения mpegts_scte35.

Чтобы вам показывалось событие scte35, добавьте эти строки в конфигурацию:


notify events {
  sink log:///var/log/flussonic/example.log;
  only event=scte35;
}

Другой способ проверить наличие меток — посмотреть их в HLS манифесте. Это менее удобно, к тому же Вам придётся ждать появления маркеров во время проигрывания в реальном времени.