Tuesday, December 31, 2019

WebRTC Media Servers and Open Source Options

WebRTC Media Servers and Open Source Options

Mesh Architecture : multiple participants using peer to peer communication it stops being practical as the number of participants increase, since it is required that a peer sends his/her video/audio stream to every participant, while receiving a video/audio stream per participant. In practice, even under optimal network conditions, a mesh video call doesn’t work well beyond five participants.


SFU: Single Forwarding Unit : meaning its main purpose is to forward media streams between clients.

MCU:  is used to address a media server that not only forwards, but can operate on the media streams that go through it (e.g. mixing all video or audio streams into a single one)

Video recording is possible if the video goes through media servers

Another advantage of using a media server is communicating with systems beyond  what web technologies allow, such as the PSTN via SIP trunking or streaming through RTMP to services that support it, like Facebook Live and YouTube Live Streaming.

Below are the Open source media servers available .

Jitsi

Jitsi is not only a WebRTC media server, but has a whole platform built around it. The Jitsi family of products include Jitsi Videobridge (Media Relay, SFU), Jitsi Meet (Conference web client), Jicofo (Jitsi Conference Focus), Jigasi (Jitsi Gateway to SIP) and Jitsi SIP Phone. The most appealing feature of the Jitsi platform is that it includes everything for a communication platform to be up and running in a matter of a few hours.  It also implements its own signaling using Jingle (XMPP) and a fully featured web interface. Sadly, however, one of the biggest pain points is implementing media recording, as there’s no solid, easy to use solution.


Kurento Media Server

This is one of the most versatile solutions out there. It not only is a media server, but is a toolkit to build one. The main advantage of Kurento is its versatility by introducing the concept of a Media Workflow, that allows to define, in code, how and where the media flows. This allows a WebRTC developer to compose and integrate very interesting features such as computer vision (e.g. recognize QR codes, face detection), real-time media modification and interop with RTP (VoIP) services. Kurento can also be configured to function as SFU or MCU, or both, in a single instance.

Janus WebRTC Gateway
While its description doesn’t mention “media server” anywhere, Janus can be setup as an SFU pretty easily. One of its most notable features is its plugin architecture, that allows to augment the service’s core capabilities.

mediasoup
A relatively new and interesting media server, what makes it different from the rest is that it’s designed to be a library (for Node) allowing it to be integrated in bigger applications.


References:
https://webrtc.ventures/2017/11/a-guide-to-webrtc-media-servers-open-source-options/

No comments:

Post a Comment