Отправка потока на другие серверы
Копирование потока на другие серверы (push)
Flussonic Media Server может принудительно копировать поток на другие серверы при помощи директивы push
. Например, можно копировать поток в CDN.
stream breakingnews {
url publish://;
push rtmp://localhost:1935/static/breakingnews1;
push tshttp://localhost:80/breakingnews2/mpegts;
push hls://cdn3/breakingnews3 disabled;
push m4s://ANOTHER_FLUSSONIC:80/STREAMNAME;
}
Директива push
поддерживает протоколы RTMP, HTTP MPEG-TS, HLS и M4S.
Для отправки потоков на другой сервер Flussonic воспользуйтесь нашим протоколом M4S. Это потоковый протокол, который не создает задержки и нужен для того, чтобы передать данные с Flussonic на Flussonic для дальнейшей передачи по WebRTC/RTMP.
Управление отправкой потоков на другой сервер
Если у потока настроен push
, а поток стал offline, то по умолчанию Flussonic будет бесконечно пытаться отправить недоступный поток. При большом количестве потоков это приведет к критическому возрастанию нагрузки на CPU.
Flussonic может следить за состоянием отправки потоков на другие серверы, и собирать статистику по попыткам отправки. Наглядное отображение статусов отправки в UI поможет вам принимать меры — приостанавливать offline-потоки или ограничивать попытки отправить их.
Статус отправки в виде индикатора показан на главной странице в списке Streams и в настройках потока на вкладке Output (Push live video to certain URLs). Причину остановки отправки потока можно посмотреть в логах.
Для того, чтобы управлять состоянием отправки потоков через push
с целью снижения нагрузки на ваш сервер, есть опции:
-
retry_timeout
(Timeout в UI) — как часто Flussonic должен повторять попытки отправить поток. Интервал в секундах, по умолчанию 5 секунд.Увеличенный интервал Timeout снизит нагрузку на сервер.
push rtmp://example.com:1935/live/STREAM_NAME retry_timeout=10;
-
retry_limit
(Limit в UI) — сколько всего раз подряд Flussonic может повторять попытки отправить поток, по умолчанию 100.Например, можно выставить 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;
Копирование потока в CDN Akamai
stream breakingnews {
url publish://;
segment_count 10;
segment_duration 10;
push hls://post.[HOSTNAME].akamaihd.net/[STREAM ID]/[ANY STREAM NAME]/;
}