Метки для врезки рекламы
Метод динамической вставки рекламы (DAI) используется для добавления рекламных роликов в линейные live потоки, такие как ТВ трансляции. Региональный оператор может, используя DAI, врезать в трансляции "местную" рекламу.
Метод динамической вставки рекламы использует метки врезки рекламы для того, чтобы подготовить поток к вставке рекламы. Метки — это метаданные потока, которые сообщают о событии врезки рекламы. Событие врезки рекламы означает, что в определенном месте в видеопотоке можно врезать рекламный ролик определенной длительности — в этой точке потока возможно плавное переключение на другой поток (т.е. на рекламу) и затем обратно на основное видео.
Метки создаются по разным стандартам, самый популярный из которых SCTE-35. Физически метки представляют собой тэги в клиентском манифесте потока, поэтому метки необходимо создавать отдельно для передачи по каждому протоколу (из числа тех, которые поддерживают adaptive streaming).
Flussonic может читать метки и преобразовывать их в другой формат. Он работает с метками в форматах SCTE-35, SCTE-104 и AWS и распознает события splice_insert.
Следующие форматы меток считываются из потоков разных типов:
- HLS — метки в формате SCTE-35, AWS (см. описание меток в документации AWS), а также простые cue метки входного потока.
- MPEG-TS — метки в формате SCTE-35.
- Видео с карт Decklink и DekTec — метки в формате SCTE-104.
Это можно свести в таблицу ниже:
Протокол потока | Метка вставки рекламы |
---|---|
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 —> в формат DASH AWS
Таким образом, для входящих MPEG-TS потоков с SCTE-35 метками можно указать, чтобы Flussonic перевел метки в AWS или SCTE-35 для HLS, AWS для DASH или же в SCTE-104 для VANC. Тогда при обращении к потоку по HLS, DASH или 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 cue меток, HLS SCTE-35 или HLS AWS —> в DASH AWS
Метки из входящих HLS потоков можно преобразовать в SCTE-35 либо AWS для вывода в HLS или в AWS для вывода в DASH. Для вывода в MPEG-TS метки можно преобразовать в SCTE-35.
Метки из потоков с Decklink SDI/HDMI и DekTec SDI
- из VANC SCTE-104 —> в MPEG-TS SCTE-35, HLS SCTE-35 или DASH AWS
По умолчанию Flussonic считывает маркеры SCTE-104 в формате VANC с карт захвата Decklink и DekTec.
Маркеры автоматически передаются в формате SCTE-35 в выходные потоки MPEG-TS, DASH и HLS, никаких настроек преобразования не требуется.
Настройка преобразования меток врезки рекламы
Чтобы получить метки в выходном потоке, необходимо:
- включить чтение и обработку меток во входном потоке
- указать формат меток, который вы хотите получить в выходном потоке.
Всё это нужно указывать в настройках входного потока.
Чтение меток во входном потоке
Чтобы включить чтение меток во входящем потоке:
-
для MPEG-TS: дополнительные опции не требуются; метки SCTE-35 считываются автоматически.
-
для HLS: добавьте опцию источника
ad=true
, чтобы включить чтение и обработку меток из входного HLS потока. Поддерживается чтение меток как в AWS формате, так и простых cue-меток SCTE-35. -
для SDI: метки SCTE-104 автоматически читаются из VANC.
Пример
input hls://MULTICAST-IP:PORT/STREAM_NAME ad=true;
Так Flussonic будет считывать метки во входящем HLS потоке.
Конвертация меток
Следующий шаг — задать формат меток для выходного потока, запрошенного по HLS.
Замечания.
В выходной MPEG-TS или DASH метки (SСTE-35 или AWS соответственно) передадутся сами.
Метки SCTE-104 из VANC будут переданы в MPEG-TS, HLS или DASH автоматически.
Для конвертации меток добавьте в настройки входящего потока директиву hls_scte35
.
Синтаксис:
hls_scte35 aws|scte35|rfc8216;
, где:
aws
— метки AWS в выходном HLSscte35
— метки SСTE-35 в выходном HLSrfc8216
— метки SCTE-35 в выходном HLS, соответствующие стандарту RFC 8216. Передаются в теге EXT-X-DATERANGE. Этот формат поддерживается устройствами Apple.
Пример
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 меток, конвертация их в 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 манифесте. Это менее удобно, к тому же Вам придётся ждать появления маркеров во время проигрывания в реальном времени.