# WebRTC-Experiment **Repository Path**: eaco_hu/WebRTC-Experiment ## Basic Information - **Project Name**: WebRTC-Experiment - **Description**: 很好的WebRTC功能范例,体验WebRTC - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2016-07-17 - **Last Updated**: 2024-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Realtime/Working [WebRTC Experiments](https://www.webrtc-experiment.com/) 1. It is a repository of uniquely experimented WebRTC demos; written by Muaz Khan! 2. No special requirement! Just WebRTC compatible web-browser (e.g. chrome/firefox/opera on desktop/android) 3. These demos/experiments are entirely client-side; i.e. no server installation needed! 4. You can use all these demos in PHP/Python/Ruby/ASP.NET/etc. everywhere! ## How to use? **Each demo has a unique directory. Simply download that directory, upload in your webserver and use it; and it'll work!** > You don't need to modify any single line to use it. No single installation or modification is needed :) ## Libraries | Library Name | Short Description | Doc | Demos | | ------------- |-------------|-------------|-------------| | `RecordRTC.js` | Supports cross-browser audio/video recordings! | [Doc](https://github.com/muaz-khan/RecordRTC) | [Demos](https://www.webrtc-experiment.com/RecordRTC/) | | `Translator.js` | Voice & Text Translator | [Doc](https://github.com/muaz-khan/Translator) | [Demos](https://www.webrtc-experiment.com/Translator/) | | `RTCMultiConnection.js` | Single Library for Everything! Just imagine :) | [Doc](https://github.com/muaz-khan/RTCMultiConnection) | [Demos](https://www.webrtc-experiment.com/RTCMultiConnection/) | | `FileBufferReader.js` | File buffers reader & chunkifier | [Doc](https://github.com/muaz-khan/FileBufferReader) | [Demos](https://www.WebRTC-Experiment.com/FileBufferReader/) | | `getScreenId.js` | Single chrome extension for all domains! Again, imagine :) | [Doc](https://github.com/muaz-khan/getScreenId) | [Demos](https://www.webrtc-experiment.com/getScreenId/) | | `Conversation.js` | Enjoy Skype-like Conversations! Oops :) | [Doc](https://github.com/muaz-khan/Conversation.js) | [Demos](https://www.webrtc-experiment.com/Conversationjs/) | | `DataChannel.js` | Supports data-streaming among multiple peers | [Doc](https://github.com/muaz-khan/DataChannel) | [Demos](https://www.webrtc-experiment.com/#DataChannel) | | `getMediaElement.js` | A library for audio/video media elements' layout | [Doc](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/getMediaElement) | [Demos](https://www.webrtc-experiment.com/getMediaElement/) | | `DetectRTC.js` | A library for detecting WebRTC features | [Doc](https://github.com/muaz-khan/DetectRTC) | [Demos](https://www.webrtc-experiment.com/DetectRTC/) | | `ConcatenateBlobs.js` | Concatenate Array of Blobs | [Doc](https://github.com/muaz-khan/ConcatenateBlobs) | [Demos](https://www.webrtc-experiment.com/ConcatenateBlobs/) | | `getStats.js` | Get peers statistics | [Doc](https://github.com/muaz-khan/getStats) | None | Other libraries: * [navigator.customGetUserMediaBar.js](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/navigator.customGetUserMediaBar) / [Demo](https://www.webrtc-experiment.com/navigator.customGetUserMediaBar/) * [File.js](https://www.webrtc-experiment.com/docs/Share-Files-using-Filejs.html) / [Demo](https://www.webrtc-experiment.com/WebRTC-File-Sharing/) * [Meeting.js](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/meeting) / [Demo](https://www.webrtc-experiment.com/meeting/) * [RTCall.js](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/RTCall) / [Demo](https://www.webrtc-experiment.com/RTCall/) * [SdpSerializer.js](https://github.com/muaz-khan/SdpSerializer) / [Demo](https://www.webrtc-experiment.com/SdpSerializer/demo.html) ## Other Repositories 13. [WebRTC Scalable Broadcast](https://github.com/muaz-khan/WebRTC-Scalable-Broadcast) 14. [Reliable Signaling](https://github.com/muaz-khan/Reliable-Signaler) 2. [RTCMultiConnection.js](https://github.com/muaz-khan/RTCMultiConnection) 1. [RecordRTC.js](https://github.com/muaz-khan/RecordRTC) 4. [Collaborate Canvas Designer](https://github.com/muaz-khan/Canvas-Designer) 1. [Translator.js](https://github.com/muaz-khan/Translator) 10. [FileBufferReader.js](https://github.com/muaz-khan/FileBufferReader) 11. [Chrome-Extensions](https://github.com/muaz-khan/Chrome-Extensions) 12. [Firefox-Extensions](https://github.com/muaz-khan/Firefox-Extensions) 3. [DetectRTC.js](https://github.com/muaz-khan/DetectRTC) 3. [getStats.js](https://github.com/muaz-khan/getStats) 3. [Conversation.js](https://github.com/muaz-khan/Conversation.js) 3. [Ffmpeg.js](https://github.com/muaz-khan/Ffmpeg.js) 3. [DataChannel.js](https://github.com/muaz-khan/DataChannel) 3. [MultiRTC Demos](https://github.com/muaz-khan/MultiRTC) 5. [XHR-Signaling](https://github.com/muaz-khan/XHR-Signaling) 6. [PluginRTC: IE/Safari Plugins compatible WebRTC-Experiments](https://github.com/muaz-khan/PluginRTC) 7. [ASP.NET MVC based WebRTC 1:1 Demo](https://github.com/muaz-khan/WebRTC-ASPNET-MVC) 8. [WebSync Signaling](https://github.com/muaz-khan/WebSync-Signaling) 9. [SdpSerializer.js](https://github.com/muaz-khan/SdpSerializer) ## Important [Experiments](https://github.com/muaz-khan/WebRTC-Experiment) | Experiment Name | Short Description | Source | Demo | | ------------- |-------------|-------------|-------------| | `Pre-recorded Media Streaming` | Stream video files in realtime; same like webcam streaming! | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/Pre-recorded-Media-Streaming) | [Demo](https://www.webrtc-experiment.com/Pre-recorded-Media-Streaming/) | | `Part of Screen Sharing` | Share a region of the screen; not the entire screen! | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/part-of-screen-sharing) | [Demo](https://www.webrtc-experiment.com/part-of-screen-sharing/) | | `Plugin-free Screen Sharing` | Share the entire screen | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/Pluginfree-Screen-Sharing) | [Demo](https://www.webrtc-experiment.com/Pluginfree-Screen-Sharing/) | | `One-Way Broadcasting` | Same like radio stations; transmit audio/video/screen streams in one-way direction. Though, it is browser-to-browser streaming! | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/webrtc-broadcasting) | [Demo](https://www.webrtc-experiment.com/webrtc-broadcasting/) | ## Useful [Experiments](https://github.com/muaz-khan/WebRTC-Experiment) | Experiment Name | Previous Demos | New Demos | | ------------- |-------------|-------------| | **video-conferencing** / multi-user (group) video sharing | [Demo](https://www.webrtc-experiment.com/video-conferencing/) / [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/video-conferencing) | [Demo](https://www.webrtc-experiment.com/meeting/) / [Source Code](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/meeting) | | **file sharing** / multi-user (group) files hangout | [Demo](https://www.webrtc-experiment.com/file-hangout/) / [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/file-hangout) | [Demo](https://www.webrtc-experiment.com/file-sharing/) / [Source Code](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/file-sharing) | | **file sharing using SCTP data channels** | [Demo](https://www.webrtc-experiment.com/WebRTC-File-Sharing/) / -- | -- / [Source Code](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/WebRTC-File-Sharing) | | **text chat** / multi-user (group) text chat | [Demo](https://www.webrtc-experiment.com/chat-hangout/) / [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/chat-hangout) | [Demo](https://www.webrtc-experiment.com/text-chat/) / [Source Code](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/text-chat) | | **MultiRTC** | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/MultiRTC/) / -- | -- / [Source Code](https://github.com/muaz-khan/MultiRTC) | ## [Google Chrome Extensions](https://github.com/muaz-khan/Chrome-Extensions) for [WebRTC](https://www.webrtc-experiment.com/)! 1. [desktopCapture API](https://github.com/muaz-khan/Chrome-Extensions/tree/master/desktopCapture) / [Install App Store Extension](https://chrome.google.com/webstore/detail/screen-capturing/ajhifddimkapgcifgcodmmfdlknahffk) 2. [tabCapture API](https://github.com/muaz-khan/Chrome-Extensions/tree/master/tabCapture) / [Install App Store Extension](https://chrome.google.com/webstore/detail/tab-capturing-sharing/pcnepejfgcmidedoimegcafiabjnodhk) 3. [Desktop Sharing](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/desktop-sharing) / [Install App Store Extension](https://chrome.google.com/webstore/detail/webrtc-desktop-sharing/nkemblooioekjnpfekmjhpgkackcajhg) 4. [File Sharing](https://github.com/muaz-khan/Chrome-Extensions/tree/master/file-sharing) / [Install App Store Extension](https://chrome.google.com/webstore/detail/webrtc-file-sharing/nbnncbdkhpmbnkfngmkdbepoemljbnfo) ## [Firefox Extensions](https://github.com/muaz-khan/Firefox-Extensions) for [WebRTC](https://www.webrtc-experiment.com/)! 1. [enable-screen-capturing](https://github.com/muaz-khan/Firefox-Extensions/tree/master/enable-screen-capturing) ## One-to-Many style of WebRTC [Experiments](https://github.com/muaz-khan/WebRTC-Experiment) | Experiment Name | Previous Demos | New Demos | | ------------- |-------------|-------------| | **video-broadcasting** | [Demo](https://www.webrtc-experiment.com/broadcast/) / [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/broadcast) | [Demo](https://www.webrtc-experiment.com/one-to-many-video-broadcasting/) / [Source Code](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/one-to-many-video-broadcasting) | | **audio-broadcasting** | [Demo](https://www.webrtc-experiment.com/audio-broadcast/) / [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/audio-broadcast) | [Demo](https://www.webrtc-experiment.com/one-to-many-audio-broadcasting/) / [Source Code](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/one-to-many-audio-broadcasting) | ## One-to-One Calls | Experiment Name | Demo | Source Code | | ------------- |-------------|-------------| | One-to-one WebRTC video chat using WebSocket | [Demo](https://www.webrtc-experiment.com/websocket/) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/websocket) | | One-to-one WebRTC video chat using socket.io | [Demo](https://www.webrtc-experiment.com/socket.io/) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/socket.io) | | WebRTC 1-1 Audio/Video/Screen Sharing | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/realtime-pluginfree-calls) | [Demo](https://www.webrtc-experiment.com/realtime-pluginfree-calls/) | | WebRTC 1-1 Calls | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/realtime-pluginfree-calls) | [Demo](https://www.webrtc-experiment.com/realtime-pluginfree-calls/) | ## Single-Page / One-Page / Client Side | Experiment Name | Demo | Source Code | | ------------- |-------------|-------------| | **Switch streams from screen-sharing to audio+video. (Renegotiation)** | [Demo](https://www.webrtc-experiment.com/demos/switch-streams.html) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/blob/master/demos/switch-streams.html) | | **Share screen and audio/video from single peer connection!** | [Demo](https://www.webrtc-experiment.com/demos/screen-and-video-from-single-peer.html) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/blob/master/demos/screen-and-video-from-single-peer.html) | | **Text chat using RTCDataChannel APIs** | [Demo](https://www.webrtc-experiment.com/demos/client-side-datachannel.html) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/blob/master/demos/) |client-side-datachannel.html | **Simple video chat** | [Demo](https://www.webrtc-experiment.com/demos/client-side.html) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/blob/master/demos/client-side.html) | | **Sharing video - using socket.io for signaling** |[Demo](https://www.webrtc-experiment.com/demos/client-side-socket-io.html) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/blob/master/demos/client-side-socket-io.html) | | **Sharing video - using WebSockets for signaling** | [Demo](https://www.webrtc-experiment.com/demos/client-side-websocket.html) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/blob/master/demos/client-side-websocket.html) | | **Audio Only Streaming** | [Demo](https://www.webrtc-experiment.com/demos/audio-only-streaming.html) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/blob/master/demos/audio-only-streaming.html) | | **MediaStreamTrack.getSources** | [Demo](https://www.webrtc-experiment.com/demos/MediaStreamTrack.getSources.html) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/blob/master/demos/MediaStreamTrack.getSources.html) | ## Experiments to share tab/screen/desktop | Experiment Name | Previous Demos | New Demos | | ------------- |-------------|-------------| | **Plugin-free screen sharing** / share the entire screen | [Demo](https://www.webrtc-experiment.com/Pluginfree-Screen-Sharing/) / [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/Pluginfree-Screen-Sharing) | [Demo](https://www.webrtc-experiment.com/screen-sharing/) / [Source Code](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/screen-sharing) | | **Desktop sharing** / using `desktopCapture` APIs | [Demo](https://www.webrtc-experiment.com/desktop-sharing/) / [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/desktop-sharing) | -- | | **Tab sharing** / using `tabCapture` APIs | [Demo](https://www.webrtc-experiment.com/screen-broadcast/) / [Source](https://github.com/muaz-khan/Chrome-Extensions/tree/master/tabCapture) | -- | ## Experiments to [share region/part of the screen](https://www.webrtc-experiment.com/part-of-screen-sharing/) | Experiment Name | Demo | Source Code | | ------------- |-------------|-------------| | Share part-of-screen **RTCMultiConnection** | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/RTCMultiConnection.sharePartOfScreen.html) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/blob/master/RTCMultiConnection/demos/RTCMultiConnection.sharePartOfScreen.html) | | Share part-of-screen **using RTCDataChannel APIs** | [Demo](https://www.webrtc-experiment.com/part-of-screen-sharing/webrtc-data-channel/) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/part-of-screen-sharing/webrtc-and-part-of-screen-sharing) | | Share part-of-screen **using Firebase** | [Demo](https://www.webrtc-experiment.com/part-of-screen-sharing/) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/part-of-screen-sharing) | | **A realtime chat using RTCDataChannel** | [Demo](https://googledrive.com/host/0B6GWd_dUUTT8RzVSRVU2MlIxcm8/realtime-chat/) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/part-of-screen-sharing/realtime-chat/RTCDataChannel) | | **A realtime chat using Firebase** | [Demo](https://googledrive.com/host/0B6GWd_dUUTT8RzVSRVU2MlIxcm8/realtime-chat/No-WebRTC-Chat.html) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/part-of-screen-sharing/realtime-chat) | ## [Demos](https://www.webrtc-experiment.com/msr/) using [MediaStreamRecorder.js](https://github.com/streamproc/MediaStreamRecorder) library | Experiment Name | Demo | Source Code | | ------------- |-------------|-------------| | **Audio Recording** | [Demo](https://www.webrtc-experiment.com/msr/audio-recorder.html) | [Source](https://github.com/streamproc/MediaStreamRecorder/tree/master/demos/audio-recorder.html) | | **Video Recording** | [Demo](https://www.webrtc-experiment.com/msr/video-recorder.html) | [Source](https://github.com/streamproc/MediaStreamRecorder/tree/master/demos/video-recorder.html) | | **Gif Recording** | [Demo](https://www.webrtc-experiment.com/msr/gif-recorder.html) | [Source](https://github.com/streamproc/MediaStreamRecorder/tree/master/demos/gif-recorder.html) | Or [RecordRTC entire Meeting using MediaStreamRecorder.js](https://github.com/streamproc/Record-Entire-Meeting) ## Demos using [DataChannel.js](https://github.com/muaz-khan/DataChannel) library | Experiment Name | Demo | Source Code | | ------------- |-------------|-------------| | **DataChannel basic demo** | [Demo](https://www.webrtc-experiment.com/DataChannel/) | [Source](https://github.com/muaz-khan/DataChannel/blob/master/index.html) | | **Auto Session Establishment** | [Demo](https://www.webrtc-experiment.com/DataChannel/auto-session-establishment.html) | [Source](https://github.com/muaz-khan/DataChannel/blob/master/auto-session-establishment.html) | | **Share part-of-screen using DataChannel.js** | [Demo](https://www.webrtc-experiment.com/part-of-screen-sharing/webrtc-data-channel/) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/part-of-screen-sharing/webrtc-and-part-of-screen-sharing) | | **Private Chat** | [Demo](https://muazkh.appspot.com/privatechat/) | ---- | | **Text Chat using Pusher and DataChannel.js** | [Demo](http://webrtc-chat-demo.pusher.io/) | [Source](https://github.com/pusher/pusher-webrtc-chat-demo) | ## Experimental (Non-Functional) | Experiment Name | Demo | Source Code | | ------------- |-------------|-------------| | **Attaching Remote Audio Streams** | [Demo](https://www.webrtc-experiment.com/experimental/remote-media-stream-attachment/) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/experimental/remote-media-stream-attachment) | | **mozCaptureStreamUntilEnded for pre-recorded media streaming** | [Demo](https://www.webrtc-experiment.com/experimental/mozCaptureStreamUntilEnded/) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/experimental/mozCaptureStreamUntilEnded) | | **Remote audio stream recording** | [Demo](https://www.webrtc-experiment.com/demos/remote-stream-recording.html) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/experimental/remote-stream-recording.html) | ## RTCMultiConnection v2.2.2 Demos | Experiment Name | Demo | Source Code | | ------------- |-------------|-------------| | AppRTC like RTCMultiConnection demo! | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/AppRTC-Look.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/AppRTC-Look.html) | | MultiRTC! RTCMultiConnection all-in-one demo! | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/MultiRTC/) | [Source](https://github.com/muaz-khan/WebRTC-Experiment/tree/master/MultiRTC-simple) | | Collaborative Canvas Designer | [Demo](https://www.webrtc-experiment.com/Canvas-Designer/) | [Source](https://github.com/muaz-khan/Canvas-Designer) | | Conversation.js - Skype like library | [Demo](https://www.webrtc-experiment.com/Conversationjs/) | [Source](https://github.com/muaz-khan/Conversation.js) | | All-in-One test | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/all-in-one.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/all-in-one.html) | | Multi-Broadcasters and Many Viewers | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/Multi-Broadcasters-and-Many-Viewers.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/Multi-Broadcasters-and-Many-Viewers.html) | | Select Broadcaster at runtime | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/select-broadcaster-at-runtime.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/select-broadcaster-at-runtime.html) | | OneWay Screen & Two-Way Audio | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/OneWay-Screen-TwoWay-Audio.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/OneWay-Screen-TwoWay-Audio.html) | | Stream Mp3 Live | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/stream-mp3-live.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/stream-mp3-live.html) | | Socket.io auto Open/Join rooms | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/socketio-auto-open-join-room.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/socketio-auto-open-join-room.html) | | Screen Sharing & Cropping | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/cropped-screen-sharing.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/cropped-screen-sharing.html) | | Share Part of Screen without cropping it | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/RTCMultiConnection.sharePartOfScreen.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/RTCMultiConnection.sharePartOfScreen.html) | | getMediaDevices/enumerateDevices | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/getMediaDevices.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/getMediaDevices.html) | | Renegotiation & Mute/UnMute/Stop | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/Renegotiation.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/Renegotiation.html) | | Video-Conferencing | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/videoconferencing.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/videoconferencing.html) | | Video Broadcasting | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/video-broadcasting.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/video-broadcasting.html) | | Many-to-One Broadcast | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/many-to-one-broadcast.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/many-to-one-broadcast.html) | | Audio Conferencing | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/audioconferencing.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/audioconferencing.html) | | Multi-streams attachment | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/multi-streams-attachment.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/multi-streams-attachment.html) | | Admin/Guest audio/video calling | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/admin-guest.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/admin-guest.html) | | Session Re-initiation Test | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/session-reinitiation.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/session-reinitiation.html) | | Preview Screenshot of the room | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/rooms-screenshots.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/rooms-screenshots.html) | | RecordRTC & RTCMultiConnection | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/RecordRTC-and-RTCMultiConnection.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/RecordRTC-and-RTCMultiConnection.html) | | Explains how to customize ice servers; and resolutions | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/features.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/features.html) | | Mute/Unmute and onmute/onunmute | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/mute-unmute.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/mute-unmute.html) | | One-page demo: Explains how to skip external signalling gateways | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/one-page-demo.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/one-page-demo.html) | | Password Protect Rooms: Explains how to authenticate users | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/password-protect-rooms.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/password-protect-rooms.html) | | Session Management: Explains difference between "leave" and "close" methods | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/session-management.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/session-management.html) | | Multi-Sessions Management | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/multi-sessions-management.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/multi-sessions-management.html) | | Customizing Bandwidth | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/bandwidth.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/bandwidth.html) | | Users ejection and presence detection | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/users-ejection.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/users-ejection.html) | | Multi-Session Establishment | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/multi-session-establishment.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/multi-session-establishment.html) | | Group File Sharing + Text Chat | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/group-file-sharing-plus-text-chat.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/group-file-sharing-plus-text-chat.html) | | Audio Conferencing + File Sharing + Text Chat | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/audio-conferencing-data-sharing.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/audio-conferencing-data-sharing.html) | | Join with/without camera | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/join-with-or-without-camera.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/join-with-or-without-camera.html) | | Screen Sharing | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/screen-sharing.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/screen-sharing.html) | | One-to-One file sharing | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/one-to-one-filesharing.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/one-to-one-filesharing.html) | | Manual session establishment + extra data transmission | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/manual-session-establishment-plus-extra-data-transmission.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/manual-session-establishment-plus-extra-data-transmission.html) | | Manual session establishment + extra data transmission + video conferencing | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/manual-session-establishment-plus-extra-data-transmission-plus-videoconferencing.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/manual-session-establishment-plus-extra-data-transmission-plus-videoconferencing.html) | | takeSnapshot i.e. Take Snapshot of Local/Remote streams | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/takeSnapshot.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/takeSnapshot.html) | | Audio/Video/Screen sharing and recording | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/audio-video-screen-sharing-recording.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/audio-video-screen-sharing-recording.html) | | Broadcast Multiple-Cameras | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/Broadcast-Multiple-Cameras.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/Broadcast-Multiple-Cameras.html) | | Remote Stream Forwarding | [Demo](https://www.webrtc-experiment.com/RTCMultiConnection/remote-stream-forwarding.html) | [Source](https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2/demos/remote-stream-forwarding.html) | | WebRTC Scalable Broadcast | Socketio/Nodejs | [Source](https://github.com/muaz-khan/WebRTC-Scalable-Broadcast) | v2.2.2 is available here: * https://github.com/muaz-khan/RTCMultiConnection/tree/master/v2.2.2 ## [Demos](https://www.webrtc-experiment.com/Conversationjs/) using [Conversation.js](https://github.com/muaz-khan/Conversation.js)
## [Documents for newcomers/newbies/beginners](https://www.webrtc-experiment.com/docs/) | A few documents for newbies and beginners | | ------------- | | [How to use RTCPeerConnection.js?](https://www.webrtc-experiment.com/docs/how-to-use-rtcpeerconnection-js-v1.1.html) | | [RTCDataChannel for Beginners](https://www.webrtc-experiment.com/docs/rtc-datachannel-for-beginners.html) | | [How to use RTCDataChannel?](https://www.webrtc-experiment.com/docs/how-to-use-rtcdatachannel.html) - single code for both canary and nightly | | [WebRTC for Beginners: A getting stared guide!](https://www.webrtc-experiment.com/docs/webrtc-for-beginners.html) | | [WebRTC for Newbies ](https://www.webrtc-experiment.com/docs/webrtc-for-newbies.html) | | [How to switch streams?](https://www.webrtc-experiment.com/docs/how-to-switch-streams.html) | | [How to echo cancellation? / Noise management?](https://www.webrtc-experiment.com/docs/echo-cancellation.html) | | [STUN or TURN? Which one to prefer; and why?](https://www.webrtc-experiment.com/docs/STUN-or-TURN.html) | | [WebRTC RTP Usage](https://www.webrtc-experiment.com/docs/RTP-usage.html) | | [webrtcpedia!](https://www.webrtc-experiment.com/webrtcpedia/) | | [Are you want to learn WebRTC?](http://muaz-khan.blogspot.com/2013/12/i-want-to-learn-webrtc.html) | | [WebRTC Tips & Tricks](http://muaz-khan.blogspot.com/2014/05/webrtc-tips-tricks.html) | 1. http://muaz-khan.blogspot.com/search/label/WebRTC 2. https://www.webrtc-experiment.com/#documentations 3. https://www.facebook.com/WebRTC 4. https://plus.google.com/+WebRTC-Experiment/posts = ## [ffmpeg-asm.js && Ffmpeg Demos](https://github.com/muaz-khan/Ffmpeg.js) | Demo Name | Live Demo | Source Code | | ------------- |-------------|-------------| | Transcoding WAV into Ogg | [Live Demo](https://www.webrtc-experiment.com/ffmpeg/wav-to-ogg.html) | [Source Code](https://github.com/muaz-khan/Ffmpeg.js/blob/master/wav-to-ogg.html) | | Transcoding WebM into mp4 | [Live Demo](https://www.webrtc-experiment.com/ffmpeg/webm-to-mp4.html) | [Source Code](https://github.com/muaz-khan/Ffmpeg.js/blob/master/webm-to-mp4.html) | | Transcoding WebM into mp4; then merging WAV+mp4 into single mp4 | [Live Demo](https://www.webrtc-experiment.com/ffmpeg/merging-wav-and-webm-into-mp4.html) | [Source Code](https://github.com/muaz-khan/Ffmpeg.js/blob/master/merging-wav-and-webm-into-mp4.html) | | Recording Audio+Canvas and merging in single mp4 | [Live Demo](https://www.webrtc-experiment.com/ffmpeg/audio-plus-canvas-recording.html) | [Source Code](https://github.com/muaz-khan/Ffmpeg.js/blob/master/audio-plus-canvas-recording.html) | = ## Custom Signaling 1. [Socket.io over Node.js](https://github.com/muaz-khan/WebRTC-Experiment/blob/master/socketio-over-nodejs) 2. [WebSocket over Node.js](https://github.com/muaz-khan/WebRTC-Experiment/blob/master/websocket-over-nodejs) 3. [WebSync / ASP.NET MVC](https://github.com/muaz-khan/WebSync-Signaling) 4. [XHR Signaling](https://github.com/muaz-khan/XHR-Signaling) 5. [openSignalingChannel](http://www.rtcmulticonnection.org/docs/openSignalingChannel/) ## How to record audio using [RecordRTC](http://recordrtc.org/)? ```html ``` Documentation page: http://recordrtc.org/RecordRTC.html ```javascript var recordRTC = RecordRTC(mediaStream, { type: 'video' // audio or video or gif or canvas }); recordRTC.startRecording(); recordRTC.stopRecording(function(videoURL) { video.src = videoURL; var blob = recordRTC.blob; var arrayBuffer = recordRTC.buffer; recordRTC.getDataURL(callback_function); }); ``` 1. [RecordRTC to Node.js](https://github.com/muaz-khan/RecordRTC/tree/master/RecordRTC-to-Nodejs) 2. [RecordRTC to PHP](https://github.com/muaz-khan/RecordRTC/tree/master/RecordRTC-to-PHP) 3. [RecordRTC to ASP.NET MVC](https://github.com/muaz-khan/RecordRTC/tree/master/RecordRTC-to-ASPNETMVC) 4. [RecordRTC & HTML-2-Canvas i.e. Canvas/HTML Recording!](https://github.com/muaz-khan/RecordRTC/tree/master/Canvas-Recording) 5. [MRecordRTC i.e. Multi-RecordRTC!](https://github.com/muaz-khan/RecordRTC/tree/master/MRecordRTC) 6. [RecordRTC on Ruby!](https://github.com/cbetta/record-rtc-experiment) 7. [RecordRTC over Socket.io](https://github.com/muaz-khan/RecordRTC/tree/master/RecordRTC-over-Socketio) 8. [ffmpeg-asm.js and RecordRTC! Audio/Video Merging & Transcoding!](https://github.com/muaz-khan/Ffmpeg.js) 9. [Recording Audio+Video in single WebM on Firefox](https://www.webrtc-experiment.com/RecordRTC/AudioVideo-on-Firefox.html) 10. [RecordRTC / PHP / FFmpeg](https://github.com/muaz-khan/RecordRTC/tree/master/PHP-and-FFmpeg) ## [RTCMultiConnection.js](http://www.RTCMultiConnection.org/docs/) You can write entire skype-like web-app using RTCMultiConnection! It supports all complex renegotiation scenarios! ```html