andersch.dev

<2024-11-20 Wed>

Video Conferencing

Video conferencing software enables real-time communication between users over the internet in virtual meetings. They integrate audio, video, and screen-sharing features.

Examples

Software Architecture
Zoom Centralized (SFU)
Microsoft Teams Centralized (SFU)
Google Meet Centralized (SFU)
Skype P2P (1:1), Centralized (MCU for groups)
Discord Centralized (SFU)
FaceTime P2P (1:1), Centralized (SFU for groups)
WhatsApp P2P (1:1), Centralized (SFU for groups)
Signal P2P (1:1), Centralized (SFU for groups)

Architectures

The setup of data channels depends on the architecture of the system. Typically, they employ either peer-to-peer (P2P) or server-based (centralized) architectures.

Peer-to-Peer (P2P)

  • Commonly uses WebRTC
  • Used for small meetings (2-4 people),
  • Each user has a direct data channel to every other participant
  • E.g., a 3-person meeting (A, B, C) would have 3 channels: A-B, A-C, B-C
  • P2P network thus becomes increasingly complex with more users

Server-Based (Centralized) Connections

  • Meetings use a Multipoint Control Unit (MCU) / Selective Forwarding Unit (SFU)
  • Each user has a single data channel to a central server
  • MCU: Server receives all streams and sends a combined stream back
  • SFU: Server forwards individual streams from each user to others
  • Reduces complexity and load on each client and scales better