How muaz-khan/webrtc-experiment works
This repository is a collection of WebRTC experiments, browser libraries, and demos rather than one application. Its common user-to-result pattern is to select or capture media, then record, mix, share, or connect it; signaling supports peer communication where needed. The map preserves the README’s major library capabilities and treats them as independent product branches. The README documents several behaviors, but source excerpts are limited, so wiring is shown only where documented or sampled code supports it.
Main entry points: RTCMultiConnection.js RTCMultiConnection · RecordRTC.js RecordRTC · DataChannel.js DataChannel · MultiStreamsMixer.js MultiStreamsMixer
Components 20
Media and recording
- RecordRTC
RecordRTC/RecordRTC.js - MediaStreamRecorder
MediaStreamRecorder/MediaStreamRecorder.js - MultiStreamsMixer
MultiStreamsMixer/MultiStreamsMixer.js - Recording storage
RecordRTC/dev/DiskStorage.js
Peer communication
- RTCMultiConnection
RTCMultiConnection/dev/RTCMultiConnection.js - Socket signaling
RTCMultiConnection-Server/server.js - Scalable broadcast
WebRTC-Scalable-Broadcast/WebRTC-Scalable-Broadcast.js - DataChannel
DataChannel/DataChannel.js - FileBufferReader
FileBufferReader/dev/FileBufferReader.js
WebRTC utilities
- DetectRTC
DetectRTC/DetectRTC.js - getStats
getStats/getStats.js - getScreenId
getScreenId.js/getScreenId.js - Translator.js
Translator.js/Translator.js
Browser experiments
- Canvas Designer
Canvas-Designer/canvas-designer-widget.js - Screen capture extensions
Chrome-Extensions/desktopCapture/background-script.js - Conferencing demos
video-conferencing/conference.js - File sharing demo
WebRTC-File-Sharing/File.js
Other components
- Browser user
- Media devices
- Other participants
Connections 26
- Browser user → Media devices: selects media
- Media devices → RecordRTC: records streams
- Media devices → MediaStreamRecorder: records streams
- RecordRTC → Recording storage: stores blobs
- Media devices → MultiStreamsMixer: provides streams
- MultiStreamsMixer → RecordRTC: produces mixed stream
- Browser user → RTCMultiConnection: starts session
- RTCMultiConnection → Socket signaling: uses signaling
- RTCMultiConnection → Other participants: connects peers
- RTCMultiConnection → Scalable broadcast: supports broadcast
- Browser user → DataChannel: sends data
- FileBufferReader → DataChannel: chunks files for
- DataChannel → Other participants: transfers data
- Browser user → DetectRTC: checks support
- Browser user → getScreenId: requests screen capture
- Browser user → getStats: inspects connection
- RTCMultiConnection → getStats: exposes peer connection
- Browser user → Translator.js: translates speech or text
- Translator.js → Media devices: uses speech input
- Browser user → Canvas Designer: draws collaboratively
- Canvas Designer → Other participants: shares drawings
- Browser user → Screen capture extensions: captures screen
- Browser user → Conferencing demos: joins conference
- Conferencing demos → RTCMultiConnection: uses peer sessions
- Browser user → File sharing demo: shares files
- File sharing demo → RTCMultiConnection: uses peer sessions