Peer-to-peer communications with WebRTC

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The WebRTC APIs are designed to allow JS applications to create real-time connections with Audio, Video, and/or Data channels directly between users via their browsers, or to servers supporting the WebRTC protocols.  It also leverages navigator.mozGetUserMedia() to get access to mic and camera data (getUserMedia() is being standardized in the Media Capture Task force, along with Recording APIs).

The primary sources for the evolving specifications for WebRTC are the W3's WebRTC and getUserMedia specs, and the various drafts at the IETF, mostly in the rtcweb working group, but also mmusic, rmcat and a few others.  Much of the implementation in Chrome and Firefox is based on code open-sourced by Google at

Note: Current versions of FlashBlock may default to blocking HTML5 <video> widgets; if so tell it to allow content on the page, or disable the setting via Tools/Add-ons.

A good tutorial on basic features in WebRTC is at HTML5 Rocks.   A collection of basic test pages to support development are at webrtc-landing.

You can make simple person-to-person calls (including to people using Chrome) at

A high-level description of what happens in an RTCPeerConnection was shown in an Hacks article (see all WebRTC Hacks articles here):

Basics of RTCPeerConnection call setup


Specification Status Comment
Media Capture and Streams Candidate Recommendation Definition of the getUserMedia API
WebRTC 1.0: Real-time Communication Between Browsers Candidate Recommendation Initial definition

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (Yes)webkit 22 (22) No support No support No support
DataChannels 29 22 (22) No support No support No support
Feature Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support (Yes)[1] (Yes)[2] No support No support No support
DataChannels ? (Yes)[2] No support No support No support

[1] Via Chrome (behind flag).

[2] Activated on Nightly and Dev Edition.

Document Tags and Contributors

Contributors to this page: teoli, Sebastianz, Jeremie, Laurentj, jesup
Last updated by: teoli,