WebRTC Experiments & Demos

Github Source Codes | Muaz Khan | @WebRTCWeb

(This Page) Last Updated On:
  1. DetectRTC Demo
    Last Updated On:
  2. Recordings in the browsers!
    1. RecordRTC Demo
      Last Updated On:
    2. MediaStreamRecorder.js Demos
      Last Updated On:
    Supports: Edge,Chrome,Firefox,Opera (including Android)
    You can even record Canvas2D animation as well as activity on WebPages!
    Last Updated On:
  3. iOS and Android open-sourced apps:
  4. getStats.js / Detect WebRTC Peer Stats (Github)
    Last Updated On:
  5. MultiStreamsMixer (Github):
    Pass multiple streams (e.g. screen+camera or multiple-cameras) and get single stream. Last Updated On:
  6. Demo Title Demo Source
    Scalable Audio/Video Broadcast Demo Source
    Scalable Screen Broadcast Demo Source
    Scalable Video Broadcast Demo Source
    Scalable File Sharing Demo Source
    Scalable Screen+Audio Broadcast Demo Source
  7. Convert your voice into 44+ other languages!
    Voice-to-Voice Translation
    Last Updated On:
  8. Canvas Drawing Tool / Collaborative / HTML5
    Last Updated On:
  9. Video Conferencing:
    1. RTCMultiConnection Conferencing
      Last Updated On:
    2. AppRTC-Like Conferencing
      Last Updated On:
    3. Advance Skype-like Conferencing
      Last Updated On:
    Supports: Chrome,Firefox,Opera,IE and Safari.
  10. File Sharing
    1. RTCMultiConnection File Sharing
      It is ALWAYs up-to-dated; and it has built-in apps for both iOS and Android.
    2. FileBufferReader.js Demo
      Last Updated On:
    3. Multi-user file sharing + text chat
      Last Updated On:
    4. RTP based file sharing
      Last Updated On:
    There is a chrome-extension to share files as well!
  11. Screen Sharing
    1. Chrome Screen Sharing Extension
    2. Standalone Screen Sharing Demo
      Last Updated On:
    3. Screen Sharing using Screen.js
      Last Updated On:
    4. Screen Sharing using RTCMultiConnection
      Last Updated On:
    5. RTCMultiConnection Scalable Screen Sharing
      Last Updated On:
    Even there is a chrome extension to share tabs.

RTCMultiConnection Featured Demos

Experiment NameDemoSource
WebRTC Scalable Broadcast Demo Source
HTML5 Collaborative Canvas Designer / A dashboard plugin Demo Source
Share Desktop using a Chrome Extension Demo Source

RTCMultiConnection Suggested Demos

Experiment NameDemoSource
Audio+Video+TextChat+FileSharing Demo Source
RecordRTC & RTCMultiConnection: Record both Local/Remote Videos Demo Source
File Sharing using RTCMultiConnection Demo Source

RTCMultiConnection Scalable Broadcast Demos

Experiment NameDemoSource
Scalable Audio/Video Broadcast using RTCMultiConnection Demo Source
Scalable Screen Broadcast using RTCMultiConnection Demo Source
Scalable Video Broadcast using RTCMultiConnection v2 Demo Source
Scalable File Sharing using RTCMultiConnection Demo Source
Scalable Screen+Audio Broadcast using RTCMultiConnection Demo Source

RTCMultiConnection Other Demos

Experiment NameDemoSource
RTCMultiConnection client using Reliable Signaler Source
Conversation.js : A library runs top over RTCMultiConnection Demo Source
PluginRTC: Microsoft Old IE and Safari support in RTCMultiConnection Source
MultiRTC demos in WebSockets/Socket.io and Firebase Demo Source
Remote Stream Forwarding & Relaying Demo Source
AppRTC like RTCMultiConnection demo!DemoSource
MultiRTC! RTCMultiConnection all-in-one demo! Demo Source
All-in-One testDemoSource
Multi-Broadcasters and Many ViewersDemoSource
Select Broadcaster at runtimeDemoSource
OneWay Screen & Two-Way AudioDemoSource
Stream Mp3 LiveDemoSource
Socket.io auto Open/Join roomsDemoSource
Screen Sharing & CroppingDemoSource
Share Part of Screen without cropping itDemoSource
Renegotiation & Mute/UnMute/StopDemoSource
Video BroadcastingDemoSource
Many-to-One BroadcastDemoSource
Audio ConferencingDemoSource
Multi-streams attachmentDemoSource
Admin/Guest audio/video callingDemoSource
Session Re-initiation TestDemoSource
Preview Screenshot of the roomDemoSource
RecordRTC & RTCMultiConnectionDemoSource
Explains how to customize ice servers; and resolutionsDemoSource
Mute/Unmute and onmute/onunmuteDemoSource
One-page demo: Explains how to skip external signalling gatewaysDemoSource
Password Protect Rooms: Explains how to authenticate usersDemoSource
Session Management: Explains difference between "leave" and "close" methodsDemoSource
Multi-Sessions ManagementDemoSource
Customizing BandwidthDemoSource
Users ejection and presence detectionDemoSource
Multi-Session EstablishmentDemoSource
Group File Sharing + Text ChatDemoSource
Audio Conferencing + File Sharing + Text ChatDemoSource
Join with/without cameraDemoSource
Screen SharingDemoSource
One-to-One file sharingDemoSource
Manual session establishment + extra data transmissionDemoSource
Manual session establishment + extra data transmission + video conferencingDemoSource
takeSnapshot i.e. Take Snapshot of Local/Remote streams Demo Source
Audio/Video/Screen sharing and recording Demo Source
Broadcast Multiple-Cameras Demo Source

Part of screen sharing

  1. RTCMultiConnection (version 3)
  2. RTCMultiConnection.sharePartOfScreen! (version 2)
    Last Updated On:
  3. Live screen sharing and cropping!
    Last Updated On:
  4. Part of screen sharing using Firebase
    Last Updated On:
  5. Part of screen sharing using WebRTC Data Channel
    Last Updated On:
  6. Part of iframe sharing
    Last Updated On:
  7. NoWebRTC Realtime text chat!
    Last Updated On:
  8. Part of screen capturing and recording
    Last Updated On:
  1. RecordRTC / PHP / FFmpeg
  2. Audio+Video Recording on Firefox
  3. HTML/Canvas Recording!
    Last Updated On:
  4. RecordRTC-to-Nodejs
  5. RecordRTC-to-PHP
    Last Updated On:
  6. RecordRTC-to-ASP.NET MVC
  7. MRecordRTC and writeToDisk/getFromDisk!
    Last Updated On:
  8. RecordRTC-to-Socket.io


Experiment NameDemoSource
All-in-One Demo Demo Source
WebPage+Canvas Recording Demo Source
HTML5 Canvas Dashboard + 2D Animation Recording Demo Source
HTML5 2D Animation Recording Demo Source
Record Videos and Upload to PHP server Demo Source
Record Mp3 Audio Files Demo Source
MRecordRTC: Multiple Videos Recording hack for Old-Chrome Demo Source
WebGL Animation Recording Demo Source
plotly - WebGL Recording Demo Source
Record Audio+Videos in Old Chrome and Merge/Mux on PHP server using Ffmpeg Source
Record Videos and Upload to Node.js server using $.post/XHR/XMLHttpRequest Source
Record Videos and Upload to ASP.NET MVC server Source
Record Videos and Upload to Node.js server using Socket.io Source
Record audio+videos in old chrome and merge/mux inside the browser using Ffmpeg-asm.js Source


  1. Video Recording
    Last Updated On:
  2. Audio Recording
    Last Updated On:
  3. Gif Recording
    Last Updated On:
  4. Audio+Video Recording
    Last Updated On:
You can even record entire meeting using pure JavaScript API!

ffmpeg-asm.js and RecordRTC! / Github

  1. Transcoding WAV into Ogg
    Last Updated On:
  2. Transcoding WebM into mp4
    Last Updated On:
  3. Transcoding WebM into mp4; then merging WAV+mp4 into single mp4
    Last Updated On:
  4. Recording Audio+Canvas and merging in single mp4
    Last Updated On:

WebRTC Libraries

  1. RecordRTC.js — Audio+Video recording in the browser!
    Last Updated On:
    RecordRTC is a server-less (entire client-side) JavaScript library can be used to record WebRTC audio/video media streams. It supports cross-browser audio/video recording.
    1. RecordRTC Documentation
    2. RecordRTC Main Demo Last Updated On:
  2. Translator.js — Voice Translation in about 41-languages!
    Last Updated On:
    Translator.js is a library for voice & text transcription and translation.
    1. Translator.js Documentation
    2. Translator.js Demo Last Updated On:
  3. RTCMultiConnection.js — WebRTC Library supporting everything!
    Last Updated On:
    RTCMultiConnection is a JavaScript wrapper library for RTCWeb i.e. WebRTC APIs. It is one of the most quickly updated, highly customizable, totally free WebRTC library out there. Whatever you can imagine, relevant APIs are available in RTCMultiConnection! Its coding-style is simlar like WebSockets JavaScript API, and nothing is hidden from end-developers. You'll have full control over every single bit; whether it is signaling implementation or complex renegotiations. It can fit in any situation, in any environment, and it is MIT Licenced, which means that you can use it in any commercial/non-commercial product.
    1. Source Code
    2. RTCMultiConnection Demos Last Updated On:
    3. RTCMultiConnection Documentation
    4. RTCMultiConnection Wiki Pages
  4. getScreenId.js — Single chrome-extension to capture screen on any domain!
    Last Updated On:
    Simply use getScreenId.js and enjoy screen capturing from any domain. You don't need to deploy chrome extension yourself. You can refer your users to install this chrome extension instead. Also, getScreenId.js auto-fallbacks to command-line based screen capturing if chrome extension isn't installed or disabled. getScreenId.js throws clear exceptions which is helpful for end-user experiences.
    1. Source Code
    2. getScreenId.js Demo Last Updated On:
  5. Conversation.js — A library with simplest API
    Last Updated On:
    Conversation.js is inspired by skype; and it provides simple events-like API to manage conversations, enable/disable media devices; add/download files; and do anything supported by Skype.

    It allows you open data conversation between two or more users using their user-ids.
    1. Source Code
    2. Conversation.js Demos Last Updated On:
  6. DataChannel.js — A library for Game-Developers and file sharing!
    Last Updated On:
    DataChannel.js is a library for peer-to-peer data/text/file sharing.
    1. DataChannel Documentation
    2. DataChannel Main Demo Last Updated On:
  7. DetectRTC.js — Detect WebRTC features availability in target browser!
    Last Updated On:
    DetectRTC.js is a library to detect WebRTC features like whether user has microphone or webcam installed; etc.
    1. DetectRTC Documentation
    2. DetectRTC Main Demo Last Updated On:
  8. getMediaElement.js — A layout for the video element!
    Last Updated On:
    getMediaElement.js is a library to easily customize and use custom <audio> and <video> elements with rich-set of controls.
    1. getMediaElement Documentation
    2. getMediaElement Main Demo Last Updated On:
  9. ffmpeg.js — Audio+Video processing in the browser!
    Last Updated On:
    ffmpeg-asm.js is a library can be used to transcode, mux and merge videos inside the browsers. These demos are using RecordRTC to get recorded audio/video array-buffers and encoding in ogg/mp4 using ffmpeg-asm.js.
    1. ffmpeg Documentation
    2. ffmpeg Demos Last Updated On:
  10. FileBufferReader.js — A library for reading & sharing files as array-buffers
    Last Updated On:
    FileBufferReader is a JavaScript library reads file and returns chunkified array-buffers. The resulting buffers can be shared using WebRTC data channels or socket.io. Share files same as Skype do!

    FileBufferReader is added to support controlled-buffers transmissions whilst following Skype's file sharing style.
    1. FileBufferReader Documentation
    2. FileBufferReader Main Demo Last Updated On:
  11. MediaStreamRecorder.js — Cross-browser audio/video/screen recording
    Last Updated On:
    Cross browser audio/video/screen recording. It supports Chrome, Firefox, Opera and Microsoft Edge. It even works on Android browsers. It follows latest MediaRecorder API sandards and provides similar APIs.
    1. MediaStreamRecorder Documentation
    2. MediaStreamRecorder Demos Last Updated On:
  12. getStats.js — WebRTC getStats API wrapper!
    Last Updated On:
    A tiny JavaScript library using WebRTC getStats API to return peer connection stats i.e. bandwidth usage, packets lost, local/remote ip addresses and ports, type of connection etc.
    1. getStats Documentation
    2. getStats Demo Last Updated On:

Multi-user Conferencing Demos

    1. Video conferencing
      Last Updated On:
    2. Meeting.js
      Last Updated On:
  1. Video one-way broadcasting
    Last Updated On:
    1. Text chat
      Last Updated On:
    2. Text chat Demo-2
      Last Updated On:
  2. File sharing
    1. RTP-based demo
      Last Updated On:
    2. SCTP-based Demo
      Last Updated On:
    3. Other Demo
      Last Updated On:
  3. Pre-recorded media streaming — Streaming local files instead of webcam! / Demo
    Last Updated On:


  1. Recording Remote Audio Streams / RecordRTC
    Last Updated On:
  2. Attaching Remote Media Streams
    Last Updated On:
  3. mozCaptureStreamUntilEnded for pre-recorded media streaming
    Last Updated On:
  4. Scenarios when any single ICE Server gets down!
    Last Updated On:


  1. DataChannel basic demo
    Last Updated On:
  2. Auto Session Establishment
    Last Updated On:
  3. Text Chat using Pusher and DataChannel.js
  1. SdpSerializer.js — An easiest way to modify SDP. It is an object-oriented way of sdp declaration, manipulation and serialization.
  2. RTCall.js — A library for Browser-to-Browser audio-only calling
    Last Updated On:
  3. Socket.io over Node.jsDemo
  4. WebSocket over Node.jsDemo
  5. WebSync/C#/ASP.NET for SignalingDemo
  6. navigator.customGetUserMediaBar.js : Keep Users Privacy! / Demo
    Last Updated On:

One-page demos

  1. Switch streams from screen-sharing to audio+video
    Last Updated On:
  2. Share screen and audio/video from single peer connection!
    Last Updated On:
  3. Text chat using RTCDataChannel APIs
    Last Updated On:
  4. Direct video sharing without using external signaling methods
    Last Updated On:
  5. Video sharing using socket.io for signaling
    Last Updated On:
  6. Video sharing using websockets for signaling
    Last Updated On:
  7. MediaStreamTrack.getSources
    Last Updated On:

Documentations / Tutorials

  1. WebRTC PeerConnection Tutorial
  2. How to use RTCPeerConnection?
  3. How to use RTCDataChannel APIs?
  4. How to use RTCDataChannel & RTCPeerConnection.js?
  5. RTCDataChannel for Beginners
  6. WebRTC for Beginners
  7. WebRTC for Newbies
  8. How to video conferencing in WebRTC?
  9. How to share files using RTCDataChannel APIs?
  10. STUN or TURN? Which one to prefer; and why?
  11. WebRTC RTP Usage
  12. How to switch streams?
  13. How to echo cancellation? / Noise management?
  14. Share files using File.js
  15. WebRTC Signaling Concepts
  16. TURN server installation Guide
  17. webrtcpedia!

Other Tutorials

  1. Are you a newcomer and want to learn WebRTC?
  2. WebRTC Tips & Tricks for newbies and beginners
  3. Disable ICE Trickling
  4. WebRTC for ASP.NET developers
  5. Google+ page for many quick tutorials!
  6. WebRTC relevant Quora Answers
  7. WebRTC relevant Stackoverflow Answers
  8. WebRTC relevant Disqus.com Answers/Comments


  1. Audio-only calls
    Last Updated On:

    WebRTC 1:1 (One-to-One) Calls
    Last Updated On:
  2. Using WebSockets for signaling Last Updated On:
  3. Using socket.io for signaling Last Updated On:


  1. Video broadcasting
    Last Updated On:

    Video broadcasting Demo-2
    Last Updated On:
  2. Audio broadcasting
    Last Updated On:

    Audio broadcasting Demo-2
    Last Updated On:

Conversation.js / Demos

  1. AndroidRTC
    Last Updated On:
  2. Search Users
    Last Updated On:
  3. Cross-Language (Multi-Lingual) Text Chat
    Last Updated On: