Skip to content

Отправка потока на другие серверы

Копирование потока на другие серверы (push)

Flussonic Media Server может принудительно копировать поток на другие серверы. Например, можно копировать поток в CDN или в Flussonic Cloud.

Чтобы использовать эту функцию, в настройках потока перейдите на вкладку Output и промотайте страницу вниз до раздела Push live video to certain URLs. Здесь вы можете добавить ссылки, на которые Flussonic будет отправлять поток.

Flussonic push options

Flussonic поддерживает отправку потоков по следующим протоколам:

RTMP

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

Также по этому протоколу вы можете отправить поток в Flussonic Cloud. Ссылки для публикации (Publish links) доступны в вашем аккаунте в настройках потока.

HTTP MPEG-TS

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

HLS

По этому протоколу можно отправлять потоки в CDN, т.к. обычно CDN его поддерживают. Ниже приведен пример конфигурации для отправки потока в CDN Akamai.

Копирование потока в CDN Akamai

stream breakingnews {
  input publish://;
  segment_count 10;
  segment_duration 10;
  push hls://post.[HOSTNAME].akamaihd.net/[STREAM_ID]/[STREAM_NAME]/;
}

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

M4S

Используйте этот протокол для отправки потоков на другой сервер Flussonic. Это потоковый протокол, который не создает задержки и нужен для того, чтобы передать данные с Flussonic на Flussonic для дальнейшей передачи по WebRTC/RTMP.

Ссылка для M4S выглядит следующим образом: m4s://FLUSSONIC-IP:PORT/STREAM_NAME. На принимающем Flussonic'e должен быть настроен соответствующий поток для приема отправляемых данных, подробнее см. здесь

Push с 302 редиректом

При публикации по m4s:// Flussonic поймет HTTP 302 и последует по указанному адресу. Это значит, что можно указать не только адрес Flussonic-сервера, но и ваш собственный бекенд для выбора точки публикации. Например, m4s://example.com/router;.

Управление отправкой потоков на другой сервер

Если для потока настроена публикация по адресу, который стал недоступен, то по умолчанию Flussonic будет бесконечно пытаться отправить поток по этому адресу.

Flussonic может следить за состоянием отправки потоков на другие серверы, и собирать статистику по попыткам отправки. Наглядное отображение статусов отправки в UI поможет вам принимать меры — приостанавливать offline-потоки или ограничивать попытки отправить их.

Статус отправки в виде индикатора показан на главной странице в списке Streams и в настройках потока на вкладке Output (Push live video to certain URLs). Причину остановки отправки потока можно посмотреть в логах.

Flussonic push options

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

  • retry_timeout (Retry timeout в UI) — как часто Flussonic должен повторять попытки отправить поток. Интервал в секундах, по умолчанию 5 секунд.

    Увеличенный интервал Retry timeout снизит нагрузку на сервер.

    push rtmp://example.com:1935/live/STREAM_NAME retry_timeout=10;

  • retry_limit (Limit в UI) — сколько всего раз подряд Flussonic может повторять попытки отправить поток.

    Например, можно выставить Limit, ограничивающий число попыток отправки. После достижения этого лимита, у потока будет статус 'error'.

    push rtmp://example.com:1935/live/STREAM_NAME retry_timeout=10 retry_limit=5;

  • disabled (отключить Enable в UI) — отключить отправку потока.

    Временное отключение, или пауза, позволяет, не удаляя поток из конфигурации, остановить его отправку. Теперь URL и все настройки отключенного потока останутся на Flussonic.

    push rtmp://example.com:1935/live/STREAM_NAME retry_timeout=10 retry_limit=5 disabled;

  • timeout (Timeout в UI) — Опция прекращает отправку потока спустя заданное количество времени, если источник или публикация остановились.

    push rtmp://example.com:1935/live/STREAM_NAME timeout=10;