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 getUserMedia()
must be run from a server. Calling 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
Face tracking
Record stream
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