Здравствуйте
Под "Стрим не прерывался" мы понимаем следующее поведение:
1. User1 заблокировал экран устройства, устройство закрыло соединение с сервером.
2. В это время, зрители продолжают видеть черный экран заглушки.
3. Зрители дожидаются когда User1 восстановит стрим, без отключения.
4. User1 восстанавливает соединение и стрим, зрители продолжают просмотр.
Поддержка
1. WebSDK publish, WebSDK play - не поддерживается
2. WebSDK publish, Server Inject, WebSDK play - поддерживается (на стороне сервера нужно выполнить Inject)
3. WebSDK publish,
Server Mixer, WebSDK play - поддерживается (поток выпадет из микшера и будет восстановлен и заново добавлен)
4. SFU SDK publish, SFU SDK play - поддерживается частично (зрители перестанут играть трек, но автоматически начнут его играть когда снова появится)
В итоге простых способов нет.
Самый оптимальный по ресурсам - это п. 2. - Inject.
Мы не тестировали его именно под эту задачу.
Кратко:
1. Запускаем ролик VOD as stream, например из файла stream.mp4 делаем stream1.
В итоге у нас работает трансляция на стороне сервера, которая не зависит ни от зрителей ни от паблишеров.
2. Делаем Inject (вставку) потока пользователя user_stream1 в stream1.
Зрители продолжают играть stream1, но видят контент user_stream1.
3. У пользователя user_stream1 обрывается соединение, зрители снова видят контент stream1.
VOD
Inject