Лучший способ транслировать камеру в реальном времени - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь найти лучший способ транслировать камару и отправлять поток на 200 подключений.

Если я использую web-rt c, я ограничен мощностью процессора. Я пытался использовать сервер в качестве шлюза, но максимальное количество подключений, которое я могу выполнить, составляет 60. И 120 с двумя серверами.

Я не могу использовать веб-сокет для отправки потока, потому что протокол TCP создает задержку.

Последнее решение: используйте протокол RTMP, но с задержкой 5-10 с.

Мой вопрос: есть ли решение для потоковой передачи камеры многим клиентам (200/300) в реальном времени?

1 Ответ

1 голос
/ 28 мая 2020

Простое использование webrt c не сработает, поскольку я предполагаю, что устройству с камерой потребуется огромная пропускная способность. Лучше всего использовать SFU. Это отправит видео на сервер, чтобы затем транслировать его всем партнерам. Обычно он может обрабатывать 200 подключений, если используется только видео.

Я реализовал такой сервер, используя mediasoup . Это также позволяет вам распределять нагрузку между несколькими процессорами и несколькими серверами.

Вот простой проект , в котором используется эта библиотека. Существуют также другие решения, такие как шлюз Janus или сервер kurento. Хотя я их не использовал.

ВТОРОЕ РЕШЕНИЕ

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

...