Отправка потока на другие серверы
Копирование потока на другие серверы (push)
Flussonic Media Server может принудительно копировать поток на другие серверы. Например, можно копировать поток в CDN или в Flussonic Cloud.
Чтобы использовать эту функцию, в настройках потока перейдите на вкладку Output и промотайте страницу вниз до раздела Push live video to certain URLs. Здесь вы можете добавить ссылки, на которые Flussonic будет отправлять поток.
Flussonic поддерживает отправку потоков по следующим протоколам:
RTMP
Этот протокол обычно используется для публикации видео в социальных сетях. Примеры и особенности настройки описаны здесь.
HTTP MPEG-TS
Этот протокол подойдет для отправки потоков в сторонние видеостриминговые сервисы. Ссылка для публикации должна быть предоставлена сервисом, в который вы осуществляете публикацию.
HLS
По этому протоколу можно отправлять потоки в облако или в CDN, т.к. обычно CDN его поддерживают. Ниже приведен пример конфигурации для отправки потока в облако Amazon AWS.
Копирование потока в облако Amazon AWS
stream breakingnews {
input publish://;
segment_count 10;
segment_duration 10;
push hlss://[api-id].execute-api.[aws-region].amazonaws.com/[stage]/[folder-name];
}
Эта конфигурация позволит вам использовать Amazon AWS API Gateway в качестве сервисного прокси для Amazon S3, как описано в документации Amazon.
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). Причину остановки отправки потока можно посмотреть в логах.
Для того чтобы управлять состоянием отправки потоков с целью снижения нагрузки на ваш сервер, используйте следующие опции:
-
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;