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.

Пример. Необходимо прочитать метки 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, можно указать, чтобы Flussonic перевел метки в AWS или SCTE-35 для HLS. Тогда при обращении к потоку по HLS в нем будут метки в указанном формате (AWS или SCTE-35).

Для вывода в 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.

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

Flussonic считывает маркеры SCTE-104 в формате VBI с карт захвата Decklink. Это происходит по умолчанию. Чтобы выключить чтение из VBI, используйте переменную среды 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). 2. Добавьте строки:

    [Service] Environment=STREAMER_VANC_OFF=true
    Нажмите Сtrl-X, затем Y, чтобы сохранить и выйти. 3. Перезапустите Flussonic:

    ```

    service flussonic restart

    ```

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

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

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

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

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

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

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

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

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

Пример

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

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

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

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

Замечания.

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

Метки SCTE-104 с SDI потока будут переданы в MPEG-TS или HLS автоматически, если вы включили чтение этих меток в переменной окружения STREAMER_VANC_OFF.

Для конвертации меток добавьте в настройки входящего потока директиву 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://log/example.log;
  only event=scte35;
}

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