/webrtc

WebRTC demos and samples

Primary LanguageJavaScriptBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Build Status

WebRTC code samples

This is a repository for client-side WebRTC code samples and the AppRTC video chat client.

Some of the samples use new browser features. They may only work in Chrome Canary and/or Firefox Beta, and may require flags to be set.

All of the samples use adapter.js, a shim to insulate apps from spec changes and prefix differences. In fact, the standards and protocols used for WebRTC implementations are highly stable, and there are only a few prefixed names. For full interop information, see webrtc.org/web-apis/interop.

NB: all samples that use getUserMedia() must be run from a server. Calling getUserMedia() from a file:// URL will result in a PermissionDeniedError NavigatorUserMediaError.

webrtc.org/testing lists command line flags useful for development and testing with Chrome.

For more information about WebRTC, we maintain a list of WebRTC Resources. If you've never worked with WebRTC, we recommend you start with the 2013 Google I/O WebRTC presentation.

Patches and issues welcome! See CONTRIBUTING for instructions. All contributors must sign a contributor license agreement before code can be accepted. Please complete the agreement for an individual or a corporation as appropriate. The Developer's Guide for this repo has more information about code style, structure and validation.

The demos

getUserMedia

Basic getUserMedia demo

getUserMedia + canvas

getUserMedia + canvas + CSS Filters

getUserMedia with resolution constraints

getUserMedia with camera/mic selection

Audio-only getUserMedia output to local audio element

Audio-only getUserMedia displaying volume

Face tracking

RTCPeerConnection

Basic peer connection

Audio-only peer connection

Multiple peer connections at once

Forward output of one peer connection into another

Munge SDP parameters

Use pranswer when setting up a peer connection

Adjust constraints, view stats

Display createOffer output

Use RTCDTMFSender

Display peer connection states

ICE candidate gathering from STUN/TURN servers

Web Audio output as input to peer connection

RTCDataChannel

Data channels

Video chat

AppRTC video chat client powered by Google App Engine

AppRTC URL parameters

Test pages

Audio and Video streams

Iframe apprtc

Iframe video

Multiple audio streams

Multiple peerconnections

Multiple video devices

Multiple video streams

Peer2peer

Peer2peer iframe

Single audio stream

Single video stream