There’s been an increasing number of service providers that offer WebRTC-based group calls in recent years. Without any special handling, the server egress bitrate grows quadratically and the participant bitrate grows linearly with the number of participants in a call, which has a direct impact in the total infrastructure costs and in the end-user experience. In addition, conferencing systems that are designed for group calls are used, at least some of the time, for one-on-one calls. Changes from one-on-one to a group call (and back) happen dynamically as participants join or leave a conference. For a system to be optimal in terms of resource use and QoS, it has to treat these two cases differently and dynamically switch between different operating modes with specific features for each case. In this presentation we describe what features need to be enabled for each mode and quantify the benefit from the users and the service provider perspective.
3. Jitsi Meet Stack
!3
Jitsi Meet for the Web
(WebRTC JS APIs)
Jitsi Meet for Mobile
(React Native WebRTC)
JiCoFo
(Signaling Server)
Jitsi Videobridge
(Media Server/SFU)
Client Side
Server Side
XMPP (Prosody) UDP/DTLS/SRTP
4. Jitsi Meet
• Multiple Layouts
• Video Quality slider
• Speaker stats
• Desktop sharing
• Integrated Chat
• callstats.io integration
• Transcriptions
• Recording to Dropbox
• Telephony support
!4
(web & mobile app)
5. Jitsi Videobridge
• Implements Google
Congestion Control
• Adaptive Simulcast/SVC
• Adaptive Last-N
• XMPP API
• REST API
• callstats.io integration
!5
media server/SFU
6. meet.jit.si Cloud
• Horizontal scaling through
Sharding
• Geo-distributed HA Proxy
cluster routes participants
to shards
• AWS Regions: North
Virginia, Oregon, Ireland,
Australia
• Beefy dedicated C4.xlarge
for SFU & TURN servers
!6
Signaling
components
SFU 1 SFU 2
SFU N
HA Proxy
Cluster
…
…
Shard N
AWS Region Z
AWS Region X
AWS Region Y
Shard 1
TURN
7. meet.jit.si Metrics
• 91,408 conferences
• Average conference duration 38 min
• Average participant count 3.37
• 3.47M conferencing minutes
!7
8. Minimize costs and
maximize call quality?
• Make the backend less CPU/memory/bandwidth hungry
• Deliver the best quality within the limits set by the client
network and CPU
9. Choosing the right
architecture
• Multipoint Control Units (MCU) transcode media streams
• Selective Forwarding Units (SFU) route packets
10. Google Congestion Control
• Network congestion directly
impacts Quality of Service (QoS)
• Google Congestion Control
cues:
• Packet delay variation
• Packet loss
• Standard RTCP & REMB or
Transport Wide Congestion
Control Header and RTCP
feedback
!10
Media
Target bitrate
2.5Mbps
Packet arrival times
Packet loss
Sender
Receiver
11. SFU + simulcast
receiver A
sender B
sender C
sender A
SFU
viewport feedback
720p@30fps
360p@30fps
180p@30fps
720p@30fps
360p@30fps
180p@30fps
720p@30fps
360p@30fps
180p@30fps
720p@30fps
180p@7.5fps
180p@7.5fps