Запись сеанса webRTC на сервере

Недавно я узнал о плагине для Cordova под названием phoneRTC, который позволяет реализовать webrtc. Я собираю и запускаю предоставленную демоверсию и очень доволен результатом. Теперь я хочу знать, как я могу записывать сеансы webrtc на веб-сервере. на данный момент инфраструктура такая:

   Signalling Server
   /               \
CLIENT---------CLIENT



  TURN Server
    /     \
CLIENT    CLIENT

Таким образом, сервер сигнализации используется для обнаружения участника и устанавливается соединение. Сервер TURN используется, если невозможно установить соединение между участниками напрямую.

Для сервера очереди используется rfc5766-turn-server, а для сервера сигнализации - socket.io.

Что я хочу сделать, так это записать сеансы, которые проходят через сервер TURN. Это возможно? если да, то как я могу этого добиться?

РЕДАКТИРОВАТЬ: Я также читал о Куренто, но мне трудно понять, смогу ли я добиться этого с его помощью.


person PU2014    schedule 12.03.2015    source источник
comment
С Kurento (или любым другим медиа / MCU-сервером) это возможно. С сервером TURN вам придется его взломать, поскольку он предназначен только для ретрансляции, а не для расшифровки / повторного шифрования пакетов srtp.   -  person Benjamin Trent    schedule 13.03.2015
comment
Спасибо за ваш ответ. Я тоже занимался некоторыми исследованиями Куренто, но не нашел много вещей для начинающих. Можете ли вы предложить хороший учебник / руководство, которое поможет мне начать реализацию с phoneRTC и Kurento?   -  person PU2014    schedule 13.03.2015
comment
@ PU2014 Ознакомьтесь с руководствами, особенно этот, где показаны возможности записи в работе с некоторые дополнительные функции, такие как обработка потока в реальном времени через фильтр gstreamer.   -  person igracia    schedule 13.03.2015
comment
@igracia Спасибо за ответ. Я читал руководства и пытался понять концепцию, но, похоже, не могу понять, как интегрировать kurento с phonertc.   -  person PU2014    schedule 13.03.2015


Ответы (1)


С сайта PhoneRTC

Упрощает добавление видео и голосового чата на основе WebRTC в ваше приложение Cordova без использования сторонних серверов. Поддержка Android, iOS и браузера!

Я не эксперт по PhoneRTC, но после небольшого ознакомления мне кажется, что он создает p2p-соединения между всеми клиентами. Серверы используются только в плоскости сигнализации, поэтому вам здесь не повезло, по крайней мере, для простого решения.

Если вы хотите сделать запись на сервере, ваши медиапотоки должны будут проходить через сервер, либо для MCU, либо для отправки всех потоков на сервер в качестве другого клиента (что немного грязно, IMHO)

person igracia    schedule 13.03.2015
comment
не используется ли сервер TURN, когда между клиентами не может быть установлено прямое p2p-соединение? Насколько я понимаю, если по какой-либо причине соединение p2p не удается (возможно, из-за конфигурации сети), сервер TURN используется в качестве прокси. Я думал о том, чтобы как-то обеспечить использование сервера TURN (или, если возможно, использовать медиа-сервер вместо сервера TURN). - person PU2014; 14.03.2015
comment
@ PU2014 TURN-сервер используется в случае симметричных NAT, когда не может быть соединения p2p из-за природы NAT. В большинстве случаев будет достаточно использовать STUN-сервер для прохождения NAT и получить пулический IP-адрес, к которому другая конечная точка должна подключиться для обмена медиа. Kurento - это не TURN / STUN-сервер, а медиа-сервер, который будет использовать STUN / TURN для прохождения NAT. Вы описываете архитектуру MCU, в которой все клиенты подключены к медиа-серверу. В этом смысле PhoneRTC вам не поможет, так как он используется для p2p-соединений. - person igracia; 14.03.2015
comment
Спасибо за объяснение. знаете ли вы какие-либо плагины Cordova, которые можно интегрировать с kurento и запускать как на ios, так и на android? или мне нужно самому написать реализацию webrtc js, используя для работы с кордовой и куранто? - person PU2014; 15.03.2015
comment
@ PU2014 Может быть, вы можете проверить фреймворк Iconic. Кроме того, есть пользователи, которые написали свои собственные клиенты для iOS и Android, но я не знаю, насколько далеко они продвинулись. Возможно, вы могли бы связаться с ними, узнать, есть ли у них доступный код. - person igracia; 17.03.2015