WebRTC enables real-time communication between browsers and devices, mostly video and audio, but other data is also possible. WebRTC is free and is supported by modern browsers. Software developers can implement their own WebRTC applications or extend their applications with WebRTC, whereby the applications can run in the browser or in the form of native apps on mobile devices such as Google Android or Apple iOS.
With WebRTC, a (web) application can access the camera and microphone of the device or share its screen. In principle, this is only done with the consent of the user.
How do the video and audio streams flow at WebRTC?
There are three topologies to choose from:
- Mesh
All participants send and receive between all participants.
- Advantage: In principle, no server is required.
- Disadvantage: Very CPU and bandwidth-intensive (equally downstream and upstream) for the devices involved.
- Mixed (Multi-party Conferencing Unit, MCU)
Participants send to a server, which combines all video and audio streams and sends them to the participants.
- Advantage: Little load on the participants' devices, lowest bandwidth of all the topologies mentioned, lowest number of connections between server and participants.
- Disadvantage: Combining all video and audio streams is very resource-intensive for the server.
- Routing (Selective Forwarding Unit, SFU)
Participants send to a server, which passes every video and audio stream through to all participants.
- Advantage: Participants need little upload bandwidth, the server needs relatively little CPU because it only passes through.
- Disadvantage: Participants need more downstream bandwidth, the server the highest upstream bandwidth of all the topologies mentioned, highest number of connections between server and participants. In the asymmetric DSL that is widespread in Europe, with significantly more downstream than upstream, this variant is more practical than mesh.