Метки для врезки рекламы
Метод динамической вставки рекламы (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 —> в формат SDI SCTE-104 (доступно с версии Flussonic 21.04)
Таким образом, для входящих MPEG-TS потоков с SCTE-35 метками можно указать, чтобы Flussonic перевел метки в AWS или SCTE-35 для HLS или же в SCTE-104 для SDI. Тогда при обращении к потоку по 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.
Метки из потоков с Decklink SDI/HDMI
- из 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 меток:
- Отредактируйте unit файл сервиса Flussonic (
/lib/systemd/system/flussonic.service
), используя systemd override:
# systemctl edit flussonic
Эта команда откроет текстовый редактор (обычно `nano`).
- Добавьте строки:
[Service]
Environment=STREAMER_VANC_OFF=true
Нажмите `Сtrl-X`, затем `Y`, чтобы сохранить и выйти.
- Перезапустите 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=true.
Пример
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 автоматически. Для управления чтением меток SCTE-104 из видео с SDI, добавьте или удалите переменную окружения STREAMER_VANC_OFF=true.
Для конвертации меток добавьте в настройки входящего потока директиву hls_scte35
.
Синтаксис:
hls_scte35 aws|scte35|false;
, где:
aws
— метки AWS в выходном HLSscte35
— метки SСTE-35 в выходном HLSfalse
— не включать метки в выходной поток.
Пример
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 манифесте. Это менее удобно, к тому же Вам придётся ждать появления маркеров во время проигрывания в реальном времени.
Note
Конвертация SCTE-35 меток из MPTS потока в метки SCTE-104 SDI потока доступна с версии Flussonic 21.04. Обновите вашу версию продукта, чтобы настроить эту опцию.