WebRTC samples
This is a repository for the WebRTC Javascript code samples. The source for these samples is available at github.com/webrtc/samples.
Some of the samples use new browser features. They may only work in Chrome Canary, Firefox Beta or Microsoft Edge (available with Windows 10), and may require flags to be set.
Most 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 resources at g.co/webrtc. 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.md for instructions. 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.
Warning: some of these demos will result in loud feedback if used without headphones.
The demos
getUserMedia
Basic getUserMedia demo
Use getUserMedia with canvas
Use getUserMedia with canvas and CSS filters
Choose camera resolution
Audio-only getUserMedia() output to local audio element
Audio-only getUserMedia() displaying volume
Face tracking, using getUserMedia and canvas
Record stream
Stream capture
Stream from a canvas element to a video element
Stream from a canvas element to a peer connection
Devices
Choose camera, microphone and speaker
Choose media source and audio output
RTCPeerConnection
Basic peer connection demo
Audio-only peer connection demo
Change bandwidth on the fly
Multiple peer connections at once
Forward the output of one PC into another
Munge SDP parameters
Use pranswer when setting up a peer connection
Constraints and stats
Display createOffer output for various scenarios
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
github.com/webrtc/samples