Skip to content

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

Для добавления рекламных роликов в линейные потоки, например, трансляции по ТВ в прямом эфире используется метод динамической вставки рекламы (Dynamic Ad Insertion, сокр. DAI). С его помощью региональный оператор врезает локальную рекламу в трансляцию.

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

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

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

Следующие протоколы поддерживают разные стандарты меток:

  • HLS — метки в формате SCTE-35, AWS (см. описание меток в документации AWS), а также метки CUE-OUT/CUE-IN входного потока.
  • MPEG-TS — метки в формате SCTE-35.
  • Видео с карт Decklink и DekTec — метки в формате SCTE-104.
  • M4F/M4S — метки в формате SCTE-35.

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

При одинаковых форматах входного и выходного потока метки проходят "сквозь" Flussonic без изменений. Если выходной формат отличается, Flussonic Media Server может преобразовать метки врезки рекламы из одного формата в другой и передать их в выходной поток.

Формат входного потока Метка вставки рекламы Выходные форматы потоков и меток
MPEG-TS (любой протокол, включая SRT и HTTP/UDP) SCTE-35 MPEG-TS SCTE-35, HLS AWS, HLS SCTE-35, SDI VANC SCTE-104, DASH AWS
HLS SCTE-35, AWS, HLS cue MPEG-TS SCTE-35, HLS AWS, HLS SCTE-35, DASH AWS
SDI SCTE-104 MPEG-TS SCTE-35, HLS AWS, HLS SCTE-35, DASH AWS
M4F, M4S SCTE-35 MPEG-TS SCTE-35, HLS AWS, HLS SCTE-35, DASH AWS

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

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

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

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

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

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

Чтобы включить чтение меток во входящем потоке:

  • для MPEG-TS, M4F, M4S: дополнительные опции не требуются; метки SCTE-35 считываются автоматически.
  • для SDI: метки SCTE-104 автоматически читаются из VANC.
  • для HLS: добавьте опцию источника ad=true, чтобы включить чтение и обработку меток из входного HLS потока. Поддерживается чтение меток как в AWS формате, так и простых cue-меток SCTE-35.

    input hls://MULTICAST-IP:PORT/STREAM_NAME ad=true;

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

Настройка формата меток для вывода в HLS

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

Note

В выходной MPEG-TS или DASH метки (SСTE-35 или AWS соответственно) передадутся сами.

Метки SCTE-104 из VANC также будут переданы в MPEG-TS, HLS или DASH автоматически.

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

hls_scte35 aws|scte35|rfc8216;

, где:

  • aws – метки AWS в выходном HLS,
  • scte35 – метки SСTE-35 в выходном HLS,
  • rfc8216 – метки SCTE-35 в выходном HLS, соответствующие стандарту RFC 8216. Передаются в теге EXT-X-DATERANGE. Этот формат поддерживается устройствами Apple.

Пример:

hls_scte35 scte35;

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

Note

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

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

В примере ниже вы узнаете как:

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

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

stream STREAM_NAME {
    input tshttp://IP-ADDRESS:PORT/INPUTSTREAM/mpegts;
    hls_scte35 aws;
}

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

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

stream STREAM_NAME_HLS {
    input hls://FLUSSONIC-IP:PORT/STREAM_NAME/tracks-v1a1/mono.m3u8 ad=true;
    hls_scte35 scte35;
}

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

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

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

event_sink events {
  url log:///var/log/flussonic/example.log;
  only event=scte35;
}

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