WebRTC Experiments & Demos » Source code on Github!

© Muaz Khan . @WebRTCWeb . Github . Latest issues . What's New?

  1. Recordings in the browsers!
    1. RecordRTC Demo
      Last updated at
    2. MediaStreamRecorder.js Demos
      Last updated at
    Supports: Edge,Chrome,Firefox,Opera (including Android)
    You can even Record WebPage!
    Last updated at
  2. Scalable Audio/Video/Screen and File Sharing
    Share files or audio/video/screen with unlimited users.
  3. Convert your voice into 44+ other languages!
    Voice and Text Translation!
    Last updated at
  4. Canvas Drawing Tool
    Collaborative HTML Canvas Drawing Tool
    Last updated at

    Allows you draw all possible shapes, write texts, redo/undo changes, drag/move single or all shapes, sync changes among all connected peers, share audio/video/screen/files/chat in parallel etc.
    Even allows you get HTML-Canvas-2D codes that you can use in your own 2d-projects!
  5. Video Conferencing:
    1. Simple Conferencing
      Last updated at
    2. Advance Skype-like Conferencing
      Last updated at
    Supports: Chrome,Firefox,Opera,IE and Safari.
  6. File Sharing
    1. FileBufferReader.js Demo
      Last updated at
    2. Multi-user file sharing + text chat
      Last updated at
    3. RTP based file sharing
      Last updated at
    There is a chrome-extension to share files as well!
  7. Screen Sharing
    1. Chrome Screen Sharing Extension
    2. Standalone Screen Sharing Demo
      Last updated at
    3. Screen Sharing using Screen.js
      Last updated at
    4. Screen Sharing using RTCMultiConnection.js
      Last updated at
    Even there is a chrome extension to share tabs.

RTCMultiConnection Demos

Experiment NameDemoSource
RTCMultiConnection v3.* (Beta) Source
WebRTC Scalable Broadcast Source
RTCMultiConnection client using Reliable Signaler Source
HTML5 Canvas Designer / A plugin
Last updated at
Demo Source
Conversation.js : A library runs top over RTCMultiConnection
Last updated at
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
Last updated at
Demo Source
AppRTC like RTCMultiConnection demo!DemoSource
Collaborative Canvas DesignerDemoSource
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
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.sharePartOfScreen!
    Last updated at
  2. Live screen sharing and cropping!
    Last updated at
  3. Part of screen sharing using Firebase
    Last updated at
  4. Part of screen sharing using WebRTC Data Channel
    Last updated at
  5. Part of iframe sharing
    Last updated at
  6. NoWebRTC Realtime text chat!
    Last updated at
  7. Part of screen capturing and recording
    Last updated at


  1. RecordRTC Main Demo
    Last updated at
  2. RecordRTC / PHP / FFmpeg
  3. Audio+Video Recording on Firefox
  4. HTML/Canvas Recording!
    Last updated at
  5. RecordRTC-to-Nodejs
  6. RecordRTC-to-PHP
    Last updated at
  7. RecordRTC-to-ASP.NET MVC
  8. MRecordRTC and writeToDisk/getFromDisk!
    Last updated at
  9. RecordRTC-to-Socket.io


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

ffmpeg-asm.js and RecordRTC! / Github

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

WebRTC Libraries

  1. RecordRTC.js — Audio+Video recording in the browser!
    Last updated at
    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 at
  2. Translator.js — Voice Translation in about 41-languages!
    Last updated at
    Translator.js is a library for voice & text transcription and translation.
    1. Translator.js Documentation
    2. Translator.js Demo Last updated at
  3. RTCMultiConnection.js — WebRTC Library supporting everything!
    Last updated at
    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 at
    3. RTCMultiConnection Documentation
    4. RTCMultiConnection Wiki Pages
  4. getScreenId.js — Single chrome-extension to capture screen on any domain!
    Last updated at
    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 at
  5. Conversation.js — A library with simplest API
    Last updated at
    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 at
  6. DataChannel.js — A library for Game-Developers and file sharing!
    Last updated at
    DataChannel.js is a library for peer-to-peer data/text/file sharing.
    1. DataChannel Documentation
    2. DataChannel Main Demo Last updated at
  7. DetectRTC.js — Detect WebRTC features availability in target browser!
    Last updated at
    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 at
  8. getMediaElement.js — A layout for the video element!
    Last updated at
    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 at
  9. ffmpeg.js — Audio+Video processing in the browser!
    Last updated at
    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 at
  10. FileBufferReader.js — A library for reading & sharing files as array-buffers
    Last updated at
    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 at
  11. MediaStreamRecorder.js — Cross-browser audio/video/screen recording
    Last updated at
    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 at
  12. getStats.js — WebRTC getStats API wrapper!
    Last updated at
    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

Multi-user Conferencing Demos

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


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


  1. DataChannel basic demo
    Last updated at
  2. Auto Session Establishment
    Last updated at
  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 at
  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 at

One-page demos

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

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 at

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


  1. Video broadcasting
    Last updated at

    Video broadcasting Demo-2
    Last updated at
  2. Audio broadcasting
    Last updated at

    Audio broadcasting Demo-2
    Last updated at

Conversation.js / Demos

  1. AndroidRTC
    Last updated at
  2. Search Users
    Last updated at
  3. Cross-Language (Multi-Lingual) Text Chat
    Last updated at

Latest Updates


Enter your email too; if you want "direct" reply!