Skip to content

Double Publish

Double Publish - это подход, при котором оригинальный источник сигнала отправляет поток сразу на два стримера. При этом стримеры настроены так, чтобы ретрансляторы всегда могли получить одинаковое видео с любого из них.

Как работает Double Publish

Оригинальный источник сигнала отправляет поток сразу на два стримера. При этом второй стример одновременно:

  • принимает поток напрямую от источника;
  • забирает поток с первого стримера;
  • использует поток с первого стримера как приоритетный.

Это нужно для того, чтобы на обоих стримерах сохранялись одинаковые таймстемпы, одинаковая структура видео и одинаковое представление потока для дальнейшей публикации.

flowchart LR
    source["Original source"] -- publish --> streamerA["Streamer A"]
    source -- publish --> streamerB["Streamer B"]
    streamerA --> streamerB
    streamerA --> relayA["ретрансляторы / downstream"]
    streamerB --> relayB["ретрансляторы / downstream"]

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

Когда применять

Double Publish рекомендуется использовать, если:

  • источник может сразу отправлять сигнал на два стримера;
  • нужно получить одинаковый поток на двух publish-стримерах;
  • downstream-ретрансляторы должны иметь возможность брать видео с любого из стримеров;
  • важно обеспечить быстрое переключение без расхождения по таймстемпам и структуре видео.

Такой режим особенно удобен при работе с программными энкодерами. Для OBS, vMix и аналогичных программ Double Publish является стандартной и естественной конфигурацией, поскольку источник изначально умеет отправлять поток сразу на несколько адресов.

Что дает этот сценарий

Преимущества Double Publish:

  • отказоустойчивая публикация с двух стримеров;
  • синхронизация структуры видео и таймстемпов между стримерами;
  • немедленное переключение на публикацию со второго стримера при отказе потока с первого;
  • возможность для последующих ретрансляторов брать видео с любого стримера без различий в содержимом потока.

Ограничения и требования

При проектировании Double Publish важно учитывать:

  • источник должен поддерживать одновременную отправку потока на два стримера;
  • второй стример должен уметь одновременно держать прямой прием и прием с первого стримера;
  • необходимо корректно задать приоритет потока с первого стримера;
  • требуется мониторинг момента переключения со связанного потока на прямой прием;
  • downstream-ретрансляторы должны быть готовы подключаться к любому из двух стримеров.