Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Experimental evaluation of dynamic switching between one on-one and group video calling

186 views

Published on

This presentation presents our paper that evaluates an extension of a production WebRTC-based video conferencing system that enables seamless dynamic switching between one-on-one and group mode as participants join or leave a conference. The two modes have different transport types; In the one-on-one case the call is relayed only if the two endpoints cannot establish a direct connection, whereas in the group case the call is always routed through a Selective Forwarding Unit (SFU). We examine the different sets of features that should be used in each mode and we perform a measurement study to explore the impact of the extension on the infrastructure costs and on several connection properties such as media latency, call establishment time, packet loss and throughput.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Experimental evaluation of dynamic switching between one on-one and group video calling

  1. 1. Experimental Evaluation of Dynamic Switching between One- on-One and Group Video Calling George Politis | github.com/gpolitis | @jitsinews tiny.cc/p2p4121-presentation 1
  2. 2. Jitsi Meet Overview • Jitsi Meet (Open Source) Stack • meet.jit.si cloud • meet.jit.si metrics !2
  3. 3. Jitsi Meet Stack 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 3
  4. 4. Jitsi Meet • Multiple Layouts • Video Quality slider • Speaker stats • Desktop sharing • Integrated Chat • callstats.io integration • Transcriptions • Recording to Dropbox • Telephony support (web & mobile app) 4
  5. 5. Jitsi Videobridge • Implements Google Congestion Control • Adaptive Simulcast/SVC • Adaptive Last-N • XMPP API • REST API • callstats.io integration media server/SFU 5
  6. 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 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
  7. 7. meet.jit.si Metrics • 91,408 conferences • Average conference duration 38 min • Average participant count 3.37 • 3.47M conferencing minutes • 7.25M participant minutes • Average RTT: 296ms • Average Upload: 1110 kbps • Average Download: 563 kbps !7
  8. 8. P2P4121 (aka peer-to-peer for one-to-one) • Congestion control • Group call vs one-on-one call mode • Other implementations • Jitsi meet implementation !8
  9. 9. 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 • Implemented in the browser/ mobile and in the SFU Media Target bitrate 2.5Mbps Packet arrival times Packet loss Sender Receiver 9
  10. 10. One-on-one vs Group mode Media Target bitrate 2.5Mbps Packet arrival times Packet loss Sender Receiver Sender A Receiver SFU simulcast 3.2Mbps Simulcast filtering Last-N filtering Sender B Sender C simulcast 3.2Mbps 2.5Mbps 10
  11. 11. Other implementations ✅ Google Hangouts (Feb 2016) ✅ Jitsi Meet (July 2017) ✅ Slack Video (June 2018) ❓Facebook Video ❓Skype ❓Apple FaceTime !11
  12. 12. P2P4121 Operation • Participants enter in group- call mode. • The group-call mode connection is maintained at all times. • If #participants == 2 for more than X seconds, enter one-on-one call mode • If #participants > 2, fall back to group-call mode SFU Participant A Participant B Group mode connection Group mode connection One-to-one mode connection !12
  13. 13. Results • Compare measurements from two periods: pre-P2P4121 and post-P2P4121 • Client side: WebRTC Statistics API => Splunk • Server side: DataDog monitoring • Infrastructure resource use: transferred data, SFU IO stats • Quality of Service: RTT, call establishment time, download/upload throughput !13
  14. 14. Conferencing-time • Pre-P2P4121 • 23470 conferences • 689273 minutes • Post-P2P4121 • 23320 conferences (-0.5%) • 696311 minutes (+1%) 6-way or more 2.6% 5-way 2.0% 4-way 5.4% 3-way 12.2% One-on-one 77.8% 14
  15. 15. Transferred data Change -49% Terrabytes Downstream Upstream Combined 6.3 2.7 3.6 13.1 6 7.1 Change -52%Change -55% 15
  16. 16. SFU IO Percent CPU 3.2% 4.7% Megabytes Memory 2,420 3,740 Change -35% Change -32% Numberofprocesses Load 0.15 0.28 Change -46% 16
  17. 17. Roundtrip-time !17
  18. 18. Average Round-trip time end-to-end RTT for server-relayed calls RTT for direct connect calls % change N. Virginia (US) 157 ms 122 ms 22.3% shorter Ireland (EU) 132 ms 92 ms 30.3% shorter 16% shorter 24.6% shorter !18
  19. 19. Upload bitrate !19
  20. 20. Download bitrate !20
  21. 21. Average down/up bitrate Download /Upload TURN-relayed Direct connect SFU-relayed Ireland (EU) 1307 Kbps /1281 Kbps 1217 Kbps /1207 Kbps 819 Kbps /1349 Kbps (60% efficiency) N. Virginia (US) 1108 Kbps /1045 Kbps 1209 Kbps /1169 Kbps 655 Kbps /1245 Kbps (52% efficiency) !21
  22. 22. Conclusion • 52% reduced bandwidth • 35%-40% infrastructure pressure (memory/CPU/load) • 20%-30% shorter RTT (depending on the region) • TURN throughput ~= direct connect throughput • Group call features reduce one-on-one call throughput efficiency: 52%-60% !22
  23. 23. Thank you! GEORGE POLITIS | GITHUB.COM/GPOLITIS | @JITSINEWS !23

×