Skip to content

Копия стрима

Один сигнал часто нужен в нескольких видах: как есть — для архива и внутреннего контроля, и обработанный — для зрителей; открытый для одних и закрытый шифрованием для других. Принять его дважды не всегда возможно: SRT-энкодер отвечает одному звонящему, спутниковый приёмник отдаёт один поток. Источник Copy читает другой стрим того же стримера внутри процесса — без второго подключения к источнику и без сетевой петли. Копия при этом — самостоятельный стрим со своими настройками.

Что получает копия

Копия читает стрим-цель после всей его обработки — транскодера, выравнивания и нарезки — и видит ровно то, что цель отдаёт зрителям, с теми же временными метками. Вместе с кадрами приходят и границы фрагментов, которыми цель нарезала поток: копия нарезает так же, и архивы двух стримов складываются из одинаковых сегментов.

Остальное копия не наследует. Это отдельный стрим со своими вкладками: транскодер, архив, защита воспроизведения, доставка и размещение настраиваются на нём заново и на цель не влияют. Так один принятый сигнал получает столько независимых обработок, сколько нужно, а источник остаётся подключённым один раз.

Настройте копию

  1. Создайте стрим, который станет копией — например, arena-mobile рядом с принимающим стримом arena.
  2. На вкладке Источники нажмите + Добавить источник и выберите протокол Copy.
  3. В поле Стрим-цель (эта нода) введите имя стрима, который нужно читать: arena.
  4. Сохраните. Индикатор источника становится зелёным, как только цель отдаёт кадры; в карточке под источником — статус и битрейт, как у любого другого источника.

Источник Copy: поле стрима-цели и карточка состояния

В списке стримов цель и копия — два обычных работающих стрима.

Список стримов: цель и её копия работают

Настройки цели не меняются: ей не нужно знать о копиях, и их может быть несколько.

Цель по запросу

Если у стрима-цели Режим запускаПо запросу, копия поднимает его сама, как зритель: цель запускается вместе с копией и работает, пока копия её читает. Остановлена или удалена копия — цель гаснет по своему таймауту без зрителей.

Цель в кластере

Копия читает только стрим своего стримера: сигнал не ходит по сети между машинами. Лейаутер размещает каждый стрим отдельно и о связи между копией и целью не знает, поэтому за тем, чтобы оба оказались на одном стримере, следите вы — неймспейсом или тегом. Самый простой способ: дайте цели и копии требование required_<тег>, а сам тег — ровно одному стримеру.

Если цель размещена на другом стримере, источник копии остаётся в ошибке: стрим ждёт и подключается сам, как только цель появится на его машине.

Что не разрешается

Проверка при сохранении отклоняет две конфигурации и подсвечивает поле стрима-цели:

  • Стрим читает сам себя. Копия ждала бы кадров, которые сама же и должна произвести.
  • Цепочка копий замыкается в кольцо. a читает b, а ba: ни у одной нет источника. Цепочка без возврата — копия копии — допустима.

Если копия не идёт

  • Источник мёртв, цель не найдена. Проверьте имя в поле стрима-цели и размещение: цель должна работать на том же стримере, что и копия.
  • Цель остановлена. Источник копии в ошибке, стрим ждёт. Как только цель снова отдаёт кадры, копия подключается сама — менять ничего не нужно.
  • Растут ошибки входа. Копия не успевает за целью, и часть кадров потеряна: стример перегружен. Смотрите диагностику источника и нагрузку на стример.