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 webrtc.org.
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 apprtc.appspot.com.
A high-level description of what happens in an RTCPeerConnection was shown in an Hacks article (see all WebRTC Hacks articles here):
Specifications
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.