Getting Started
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 . 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./samples
- List of WebRTC demos and apps (incomplete and slightly out of date)
- WebRTC video chat: (source code at github.com/webrtc/apprtc)
- Simple getUserMedia demo: /gum
- RTCPeerConnection ‘on one page’, i.e. without signalling: /pc
- Simple RTCDataChannel example: /rtcdatachannel
- Data channel file transfer: webrtc./samples/src/content/datachannel/filetransfer
- RTCPeerConnection signaling example: /TR/webrtc/#simple-example
- Constraints: /getusermedia/constraints
- Screen capture
- Muaz Khan maintains a mighty assortment of experiments at .
Tutorials
- Getting Started With WebRTC: /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: /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: /47682405
- WebRTC Fundamentals: online course
Codelabs
- Walkthrough and code for setting up a server and client for video chat: /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.
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./mocowe
- Xylophone: /blog/experiments/jsdetection
- Photobooth with filters:
- SVG filters: /SenorBlanco/moggy/master/filterbooth.html
- Face masking with WebGL:auduno./clmtrackr/face_mask.html
- Face deformation with WebGL: auduno./clmtrackr/examples/facedeform.html
- Augmented Reality Photobooth: picshare.
Screen capture
Web Audio integration
- Music production:
- Chris Wilson’s input demos at webaudiodemos.
- Paul Lewis’s gUM/WebGL demo: lab./webgl/audio-room
- RTCPeerConnection integration: /webrtcwebaudio
- Theremin: getUserMedia + tracking + Web Audio: /teburin
- cabbibo./holly
Recording
- Record audio and video with the MediaRecorder API: /mr
- Voice Memos app
- Record and download without MediaRecorder: webaudiodemos./AudioRecorder
- RecordRTC
Chat
- Twelephone: chat with Twitter contacts
- : job interview tool with live coding
- : 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: /facekat
- RTCDataChannel + WebGL: BananaBread
Telehealth
Phone
File sharing and P2P
- Sharefest: share file by uploading and sharing link
- : get a file by sending a link to a share page
- peerCDN: P2P CDN
- WebTorrent: BitTorrent over WebRTC
- cdn./pilots/kaltura: P2P video
- : add P2P file download to your web page