Video Calling Apps System Design

December 31, 2023 | 1 Minute Read

Table of content:

Video Calling applications such as zoom/skype uses adaptive streaming to improve users realtime experience.

Functional Requirements

  1. Video calling should support peer-to-peer and video conferences
  2. System should support 300M video calls/day
  3. System should support Adaptive streaming
  4. System should adopt Scalable Video Coding

Non-Functional Requirements

  1. System should be highly reliable and scalable
  2. System should be highly available, loosing some frames is acceptable.

Capacity Estimation

Throughput
  • Throughput : 300M/10^5= 3000 Calls/sec.
Storage
  • Video recording stored in their local machines

High Level System Design

Video Calling High Level System Design
IMPORTANT NOTES
  • Adjusting resolution based on device type and bandwidth is called adaptive streaming.
  • Number of pixels in a video frame is called resolution
  • Sending many video streams for different resolutions isn’t scalable
  • System should use Scalable Video Coding (SVC) to stream video.

Algorithms

TBD