/samples

WebRTC Web demos and samples

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

Build Status

WebRTC code samples

This is a repository for the WebRTC Javascript code samples.

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.

In Chrome and Opera, all samples that use navigator.mediaDevices.getUserMedia() must be run from a server. Calling navigator.mediaDevices.getUserMedia() from a file:// URL will work in Firefox, but fail silently in Chrome and Opera.

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. Head over to test/README.md and get started developing.

The demos

getUserMedia

Basic getUserMedia demo

getUserMedia + canvas

getUserMedia + canvas + CSS Filters

getUserMedia with resolution constraints

getUserMedia with camera, mic and speaker selection

Audio-only getUserMedia output to local audio element

Audio-only getUserMedia displaying volume

Record stream

Stream capture

Stream from a canvas element to a video element

Stream from a canvas element to a peer connection

Devices

Select camera, microphone and speaker

Select media source and audio output

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

Do an ICE restart

Web Audio output as input to peer connection

Peer connection as input to Web Audio

RTCDataChannel

Transmit text

Transfer a file

Transfer data

Video chat

AppRTC video chat client powered by Google App Engine

AppRTC URL parameters