WebRTC (Web Real-Time Communications) is a free, open standard that lets browsers and mobile apps send audio, video and arbitrary data peer-to-peer with no plugins required. It is built into every modern browser since 2017, baked into iOS and Android via libwebrtc, and forms the audio/video plumbing of products as varied as Google Meet, Discord, Microsoft Teams, Slack huddles, Zoom (in part), Twitter Spaces, Houseparty (RIP), and a long list of customer-support tools, video doorbells and game streaming services.
Why WebRTC exists
Before WebRTC, putting voice or video in a browser meant Flash, Silverlight, or a custom plugin. Each had different security models, codecs, and platform support, and none worked on mobile. WebRTC was a deliberate effort by Google, Mozilla and the IETF (chartered in 2011, first stable in 2013, fully standardised in 2021 as W3C Recommendation) to put a complete real-time stack inside the browser as a JavaScript API: capture, encode, encrypt, transmit, receive, decrypt, render — all of it — with no install step.
What WebRTC actually gives you
- Capture — the
getUserMedia()API to access the camera, microphone and screen. - Codecs — Opus for audio, VP8/VP9/H.264/AV1 for video, all negotiated automatically.
- Transport — SRTP for media (encrypted, packet-loss-resilient, jitter-buffered).
- NAT traversal — ICE/STUN/TURN built in, mandatory, no manual configuration.
- Encryption — DTLS-SRTP mandatory; you cannot disable it.
- Data channels —
RTCDataChannelfor arbitrary peer-to-peer data over SCTP/DTLS.
What WebRTC explicitly does NOT give you
- Signalling — how the two peers find each other and exchange the offer/answer SDP. WebRTC says "use whatever you want": WebSocket, HTTP polling, MQTT, Firebase, SIP-over-WebSocket. Pick one.
- Authentication or identity — that is your application's job.
- Multi-party media routing — for more than 2-3 participants you need server-side help (an SFU or MCU). WebRTC alone is point-to-point.
- Recording or storage — you can capture the local streams to disk, but anything cloud-side requires extra infrastructure.