6.9k GitHub stars and counting — muaz-khan/RecordRTC is a JavaScript project TopGit is tracking across repositories on the platform. RecordRTC is WebRTC JavaScript library for audio/video as well as screen activity recording. It supports Chrome, Firefox, Opera, Android, and Microsoft Edge. Platforms: Linux, Mac and Windows.
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
WebRTC JavaScript Library for Audio+Video+Screen+Canvas (2D+3D animation) Recording
Chrome Extension or Dozens of Simple-Demos and it is Open-Sourced and has API documentation
A demo using promises:
let stream = await navigator.mediaDevices.getUserMedia({video: true, audio: true});
let recorder = new RecordRTCPromisesHandler(stream, {
type: 'video'
});
recorder.startRecording();
const sleep = m => new Promise(r => setTimeout(r, m));
await sleep(3000);
await recorder.stopRecording();
let blob = await recorder.getBlob();
invokeSaveAsDialog(blob);
A demo using normal coding:
navigator.mediaDevices.getUserMedia({
video: true,
audio: true
}).then(async function(stream) {
let recorder = RecordRTC(stream, {
type: 'video'
});
recorder.startRecording();
const sleep = m => new Promise(r => setTimeout(r, m));
await sleep(3000);
recorder.stopRecording(function() {
let blob = recorder.getBlob();
invokeSaveAsDialog(blob);
});
});
Watch a YouTube video presentation/tutorial
Browsers Support
Browser
Operating System
Features
Google Chrome
Windows + macOS + Ubuntu + Android
audio + video + screen
Firefox
Windows + macOS + Ubuntu + Android
audio + video + screen
Opera
Windows + macOS + Ubuntu + Android
audio + video + screen
Edge (new)
Windows (7 or 8 or 10) and MacOSX
audio + video + screen
Safari
macOS + iOS (iPhone/iPad)
audio + video
Codecs Support
Browser
Video
Audio
Chrome
VP8, VP9, H264, MKV
OPUS/VORBIS, PCM
Opera
VP8, VP9, H264, MKV
OPUS/VORBIS, PCM
Firefox
VP8, H264
OPUS/VORBIS, PCM
Safari
VP8
OPUS/VORBIS, PCM
Edge (new)
VP8, VP9, H264, MKV
OPUS/VORBIS, PCM
CDN
<!-- recommended -->
<script src="https://www.WebRTC-Experiment.com/RecordRTC.js"></script>
<!-- use 5.6.2 or any other version on cdnjs -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/RecordRTC/5.6.2/RecordRTC.js"></script>
<!-- NPM i.e. "npm install recordrtc" -->
<script src="node_modules/recordrtc/RecordRTC.js"></script>
<!-- bower -->
<script src="bower_components/recordrtc/RecordRTC.js"></script>
Configuration
const recorder = RecordRTC(stream, {
// audio, video, canvas, gif
type: 'video',
// audio/webm
// audio/webm;codecs=pcm
// video/mp4
// video/webm;codecs=vp9
// video/webm;codecs=vp8
// video/webm;codecs=h264
// video/x-matroska;codecs=avc1
// video/mpeg -- NOT supported by any browser, yet
// audio/wav
// audio/ogg -- ONLY Firefox
// demo: simple-demos/isTypeSupported.html
mimeType: 'video/webm',
// MediaStreamRecorder, StereoAudioRecorder, WebAssemblyRecorder
// CanvasRecorder, GifRecorder, WhammyRecorder
recorderType: MediaStreamRecorder,
// disable logs
disableLogs: true,
// get intervals based blobs
// value in milliseconds
timeSlice: 1000,
// requires timeSlice above
// returns blob via callback function
ondataavailable: function(blob) {},
// auto stop recording if camera stops
checkForInactiveTracks: false,
// requires timeSlice above
onTimeStamp: function(timestamp) {},
// both for audio and video tracks
bitsPerSecond: 128000,
// only for audio track
// ignored when codecs=pcm
audioBitsPerSecond: 128000,
// only for video track
videoBitsPerSecond: 128000,
// used by CanvasRecorder and WhammyRecorder
// it is kind of a "frameRate"
frameInterval: 90,
// if you are recording multiple streams into single file
// this helps you see what is being recorded
previewStream: function(stream) {},
// used by CanvasRecorder and WhammyRecorder
// you can pass {width:640, height: 480} as well
video: HTMLVideoElement,
// used by CanvasRecorder and WhammyRecorder
canvas: {
width: 640,
height: 480
},
// used by StereoAudioRecorder
// the range 22050 to 96000.
sampleRate: 96000,
// used by StereoAudioRecorder
// the range 22050 to 96000.
// let us force 16khz recording:
desiredSampRate: 16000,
// used by StereoAudioRecorder
// Legal values are (256, 512, 1024, 2048, 4096, 8192, 16384).
bufferSize: 16384,
// used by StereoAudioRecorder
// 1 or 2
numberOfAudioChannels: 2,
// used by WebAssemblyRecorder
frameRate: 30,
// used by WebAssemblyRecorder
bitrate: 128000,
// used by MultiStreamRecorder - to access HTMLCanvasElement
elementClass: 'multi-streams-mixer'
});
The most recent commit recorded on muaz-khan/RecordRTC was 2.3 years ago, based on the GitHub push timestamp. The repository has 1.8k forks — one of the better signals of community interest.
How many stars does muaz-khan/RecordRTC have?
muaz-khan/RecordRTC has 6.9k GitHub stars — refresh the page for the live number, or check github.com/muaz-khan/RecordRTC. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What language is muaz-khan/RecordRTC written in?
muaz-khan/RecordRTC is written primarily in JavaScript. GitHub's language field is based on the largest share of bytes in the default branch.
What topics is muaz-khan/RecordRTC associated with?
GitHub's repository topics for muaz-khan/RecordRTC: "mediarecorder", "mediarecorder-api", "mediastreamrecorder", "record-audio", "record-screen", "record-video", "recordrtc", "webrtc", "webrtc-recording". TopGit's editorial category is open-source.
Where do I read more about muaz-khan/RecordRTC?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/muaz-khan/RecordRTC is the definitive source.
Read full README in the tab above.
Still deciding about RecordRTC?
One click hands the question to an AI along with this page — see what it says about RecordRTC.