Можно ли сохранить видеопоток между двумя одноранговыми узлами в webrtc на сервере в реальном времени?

Предположим, у меня есть 2 пира, обменивающихся видео с помощью webRTC. Теперь мне нужно, чтобы оба потока были сохранены в виде видеофайлов на центральном сервере. Возможно ли это в реальном времени? (Сохранение / загрузка видео от сверстников не вариант).

Я подумал о создании 3-узлового соединения webRTC, при этом 3-й узел будет сервером. Таким образом, я могу отображать запись потока 3-го узла или сохранить его другим способом. Но я не уверен в надежности / осуществимости реализации.

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

PS: Я использую Agora.io для видеоконференций.


person supradeux    schedule 21.05.2019    source источник
comment
Возможно ли это с помощью webRTC?   -  person Jayna Tanawala    schedule 23.01.2021


Ответы (3)


на мой взгляд, вы можете сделать это, как демо записи: https://webrtc.github.io/samples/src/content/getusermedia/record/.

записывайте каждый поток в капли и отправляйте их на свой сервер с помощью веб-сокета.

затем конвертируйте капли в файл webm или просто добавьте видео

person li evolay    schedule 24.05.2019

Agora не предлагает локальную запись из коробки, но они предоставляют вам код, чтобы вы могли запустить свою локальную запись с помощью вашего собственного сервера. У Agora есть код и инструкции для развертывания на GitHub: https://github.com/AgoraIO/Basic-Recording

Как это работает: после того, как вы настроили SDK для записи Agora, клиент инициировал запуск записи посредством взаимодействия с пользователем (нажатие кнопки) или какого-либо другого события (например, peer-joined или stream-subscribed ) это заставит службу записи присоединиться к каналу и записывать потоки. _Служба выводит видеофайл после остановки записи.

person Hermes    schedule 22.05.2019

вам нужен медиа-сервер WebRTC.

Медиа-серверы WebRTC позволяют поддерживать более сложные сценарии. Медиа-серверы WebRTC - это серверы, которые действуют как клиенты WebRTC, но работают на стороне сервера. Это конечные точки для средств массовой информации, в которых мы хотели бы принять меры. Популярные задачи, выполняемые на медиа-серверах WebRTC, включают:

Групповые вызовы Запись Широковещательная передача и потоковая передача в реальном времени Шлюз в другие сети / протоколы Машинное обучение на стороне сервера Облачный рендеринг (игровой или 3D) Отважные и целеустремленные пойдут и разработают свой собственный медиа-сервер WebRTC. Большинство выберет коммерческую услугу или услугу с открытым исходным кодом. Для последнего ознакомьтесь с этими советами по выбору фреймворка медиа-сервера с открытым исходным кодом WebRTC.

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

Для записи сеансов WebRTC вы можете делать это либо на стороне клиента, либо на стороне сервера. В обоих случаях вам понадобится сервер, но что это за сервер и как он работает, в каждом случае будет очень разным.

Если вам нужна трансляция, вам нужно подумать о размере трансляции вашего сеанса WebRTC.

ссылка: https://bloggeek.me/webrtc-server/

person rjhcnf    schedule 04.05.2021