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) |
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