WebRTC offers web application developers the ability to write rich, realtime multimedia applications (think video chat) on the web, without requiring plugins, downloads or installs. It’s purpose is to help build a strong RTC platform that works across multiple web browsers, across multiple platforms.
The overall architecture looks something like this:
An API to be used by third party developers for developing web based videochat-like applications. More info at Web APIs.
WebRTC Native C++ API
An API layer that enables browser makers to easily implement the Web API proposal.
Transport / Session
The session components are built by re-using components from libjingle, without using or requiring the xmpp/jingle protocol.
A network stack for RTP, the Real Time Protocol.
A component allowing calls to use the STUN and ICE mechanisms to establish connections across various types of networks.
An abstracted session layer, allowing for call setup and management layer. This leaves the protocol implementation decision to the application developer.
VoiceEngine is a framework for the audio media chain, from sound card to the network.
iSAC / iLBC / Opus
iSAC: A wideband and super wideband audio codec for VoIP and streaming audio. iSAC uses 16 kHz or 32 kHz sampling frequency with an adaptive and variable bit rate of 12 to 52 kbps.
Acoustic Echo Canceler (AEC)
The Acoustic Echo Canceler is a software based signal processing component that removes, in real time, the acoustic echo resulting from the voice being played out coming into the active microphone.
Noise Reduction (NR)
The Noise Reduction component is a software based signal processing component that removes certain types of background noise usually associated with VoIP. (Hiss, fan noise, etc…)VideoEngine
Video codec from the WebM Project. Well suited for RTC as it is designed for low latency.
Video Jitter Buffer
Dynamic Jitter Buffer for video. Helps conceal the effects of jitter and packet loss on overall video quality.
For example, removes video noise from the image capture by the webcam.