Peer-to-peer communications with WebRTC

This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for the proper prefixes to use in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the spec changes.

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 Browser Working Draft Initial definition

Browser compatibility

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

[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,