Метки врезки рекламы¶
Для добавления рекламных роликов в линейные потоки, например, трансляции по ТВ в прямом эфире используется метод динамической вставки рекламы (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.
Пример из двух частей¶
В примере ниже вы узнаете как:
- Получить SСTE-35 метки из MPEG-TS.
- Конвертировать метки в 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 манифесте. Это менее удобно, к тому же вам придётся ждать появления меток во время проигрывания в реальном времени.