Getting Started
- Overview presentations
- Demos and samples
- Tutorials
- Codelabs
- Books
- Developer tools and resources
- Standards and protocols
- Native APIs
- Discussion, blogs and articles
- Browser support
- JavaScript apps and frameworks
- Services
- Applications
New to WebRTC?
Here are some suggestions to help you get started:
- Get an overview of WebRTC: video, slides.
- Find out more about WebRTC architecture and JavaScript APIs: Getting Started With WebRTC.
- Try out our code samples and live demos.
- Try our codelab.
- Read through the code for the canonical video chat app appr.tc. The repo is at github.com/webrtc/apprtc.
- For iOS, Android or the C++ WebRTC APIs, take a look at the Native APIs resources below.
- Ask general questions on Stack Overflow, deeper technical WebRTC questions on discuss-webrtc.
More resources below.
Contributions and updates welcome.
Overview presentations
- 2013 Google I/O presentation: video, slides
- Video chat for Web, Android and iOS
- What’s next for WebRTC?
Demos and samples
- WebRTC JavaScript code samples: github.com/webrtc/samples
- Live demos of the samples: webrtc.github.io/samples
- List of WebRTC demos and apps (incomplete and slightly out of date)
- WebRTC video chat: appr.tc (source code at github.com/webrtc/apprtc)
- Simple getUserMedia demo: simpl.info/gum
- RTCPeerConnection ‘on one page’, i.e. without signalling: simpl.info/pc
- Simple RTCDataChannel example: simpl.info/rtcdatachannel
- Data channel file transfer: webrtc.github.io/samples/src/content/datachannel/filetransfer
- RTCPeerConnection signaling example: w3.org/TR/webrtc/#simple-example
- Constraints: simpl.info/getusermedia/constraints
- Screen capture
- Muaz Khan maintains a mighty assortment of experiments at webrtc-experiment.com.
Tutorials
- Getting Started With WebRTC: html5rocks.com/en/tutorials/webrtc/basics
- WebRTC in the real world: STUN, TURN and signaling
- A practical guide to WebRTC: presentation slides from vLine
- Capturing audio and video in HTML5: html5rocks.com/en/tutorials/getusermedia/intro
- Excellent series of articles by Louis Stowasser and Robert Nyman: hacks.mozilla.org/category/webrtc
- Justin Uberti at Google I/O 2012: youtu.be/E8C8ouiXHHk
- Cullen Jennings video: HTML5 WebRTC: vimeo.com/47682405
- WebRTC Fundamentals: online course
Codelabs
- Walkthrough and code for setting up a server and client for video chat: bitbucket.org/webrtc/codelab
- Google I/O 2014 file sharing codelab
Books
Developer tools and resources
- adapter.js: shim maintained by Google to cope with API changes and platform differences
- WebRTC Troubleshooter, code and documentation at github.com/webrtc/testrtc
- Stats and information for current RTCPeerConnection session: chrome://webrtc-internals
- getUserMedia.js: polyfill from Addy Osmani
- Chrome–Firefox: interop notes
- File bugs at new.crbug.com
Standards and protocols
- Web Real-Time Communications Working Group
- W3C Working Draft: WebRTC 1.0: Real-time Communication Between Browsers
- Media Capture and Streams W3C Working Draft
- IETF RTCWEB: protocol specifications
Native APIs
- Getting started with WebRTC on iOS
- Introduction to WebRTC on Android
- Build scripts from pristineio: repo with links to how-to guides for Android and iOS
- Native API documentation
- WebRTC shim for WKWebView
Discussion, blogs and articles
Browser support
JavaScript apps and frameworks
- Comprehensive list in the webrtcHacks article about JavaScript libraries.
Video chat
Peer-to-peer data
- PeerJS: data channel abstraction
- Sharefest: share files via data channels
- Peer5 Downloader: P2P file download
- ShareDrop: file sharing between devices on the same network
VoIP/PSTN
- Open source JavaScript phone API: Phono
- Open source JavaScript SIP client: sipML5
- Open source JavaScript SIP library: JsSIP
- Open source SIP proxy with WebSocket and SRTP support: Kamailio
- FreeSWITCH
Face/head tracking
Node
Services
- OpenTok (acquired by Telefonica Digital)
- vLine
- WebRTC Developer Tool Vendor Directory
Applications
getUserMedia
- ASCII: idevelop.github.com/ascii-camera
- Movement tracking slide page controller: lli.web.fh-koeln.de/mocowe
- Xylophone: soundstep.com/blog/experiments/jsdetection
- Photobooth with filters: webcamtoy.com
- SVG filters: rawgithub.com/SenorBlanco/moggy/master/filterbooth.html
- Face masking with WebGL:auduno.github.io/clmtrackr/face_mask.html
- Face deformation with WebGL: auduno.github.io/clmtrackr/examples/facedeform.html
- Augmented Reality Photobooth: picshare.jooink.com
Screen capture
Web Audio integration
- Music production: soundtrap.com
- Chris Wilson’s input demos at webaudiodemos.appspot.com
- Paul Lewis’s gUM/WebGL demo: lab.aerotwist.com/webgl/audio-room
- RTCPeerConnection integration: simpl.info/webrtcwebaudio
- Theremin: getUserMedia + tracking + Web Audio: g200kg.com/teburin
- cabbibo.github.io/holly
Recording
- Record audio and video with the MediaRecorder API: simpl.info/mr
- Voice Memos app
- Record and download without MediaRecorder: webaudiodemos.appspot.com/AudioRecorder
- RecordRTC
Chat
- talky.io
- appear.in
- tawk.com
- hu.tt
- Twelephone: chat with Twitter contacts
- browsermeeting.com
- codassium.com: job interview tool with live coding
- vmux.co
- vidtok.com
- voxeet.com: high quality audio
Games
- The first WebRTC game: Puzzlible
- Who Am I? (second ever WebRTC game, no longer online)
- WebRTC + Web Audio + WebGL: Cube Slam
- Face tracking: shinydemos.com/facekat
- RTCDataChannel + WebGL: BananaBread
Telehealth
Phone
File sharing and P2P
- Sharefest: share file by uploading and sharing link
- dropple.me: get a file by sending a link to a share page
- peerCDN: P2P CDN
- WebTorrent: BitTorrent over WebRTC
- cdn.peer5.com/pilots/kaltura: P2P video
- webp2p.org
- peer5.com: add P2P file download to your web page