WebRTC конференция на 5 человек с записью для воспроизведения?

Я работаю над проектом для больших групповых трансляций в WebRTC, так как он должен работать на устройствах iOS и Android, я использую Kurento и плагин iOSWEBRTC cordvoa для его создания. Мне любопытно, может ли кто-нибудь помочь улучшить мой план или есть более простой способ добиться этого.

Нам нужна видео / аудиоконференция с участием 5 человек в комнате, однако мы должны иметь возможность показывать это видео большой аудитории. Теперь я хотел бы использовать Куренто в качестве посредника и записывать потоки в файлы .webm для воспроизведения в реальном времени во время конференции.

Есть ли лучший способ добиться этого? И как бы мне воспроизвести файл webm во время его записи, он должен обновляться и продолжать воспроизведение по мере отправки большего количества видео, в основном копии камеры в реальном времени.

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

Конференция из 5 человек для вещателей X количество зрителей затем загрузили эти потоки, однако я понимаю, что требования к пропускной способности для загрузки были бы безумно высокими, поэтому я остановился на этой идее. Кроме того, зрителям не нужно смотреть в реальном времени, как вещателям. Они должны иметь возможность видеть и общаться друг с другом одновременно, а зрители могут отставать на несколько секунд.

TL;DR:

Попытка провести видеоконференцию из 5 человек с видео / аудио записью, чтобы затем транслировать ее в прямом эфире зрителям-игрокам. Это позволит избежать ограничений пропускной способности PeerConnection. Сработает ли это, или я что-то забываю?


person Austin    schedule 31.12.2015    source источник


Ответы (1)


Вам нужно будет изучить использование SFU или MCU. MCU очень дорогостоящий, но мультиплексирует видеопотоки и отправляет единый видеопоток всем одноранговым узлам, а также может записывать этот поток. SFU - это единая точка приема всех потоков, выборочно пересылающая их клиентам. Он может записывать отдельные потоки, а затем вы можете выполнять постобработку, чтобы сделать одну запись из нескольких записанных потоков. Ячеистая сеть соединений действительно не работает для этого варианта использования.

person xdumaine    schedule 01.01.2016
comment
Любые предпочтительные фреймворки? Мне нужно что-то быстро развернуть. - person Austin; 01.01.2016
comment
@Austin Посетите наш проект kurento-room. Вы должны начать работу с этим в кратчайшие сроки! Кроме того, вы можете добавить микширование на стороне сервера, но за это придется заплатить. Наверное, тебе лучше без этого. - person igracia; 01.01.2016
comment
@igracia, мой вопрос больше о масштабируемости? Нужна ли мне установка с несколькими серверами? - person Austin; 01.01.2016
comment
для одного сеанса вам не понадобится больше одного сервера. Для нескольких сеансов вам определенно понадобится несколько серверов. Если вас устраивает SaaS, выбирайте TokBox - у них есть все, что вам нужно, из коробки. - person Tsahi Levent-Levi; 03.01.2016