Screen, Camera & Voice Recorder
Record your screen, webcam, and microphone directly in your browser with zero uploads, no watermarks, and unlimited recording time.
MediaRecorder Engineering & Bitrate Derivations
The MediaStream Recording API records raw video and audio frames in real time without external encoding daemons. System audio and microphone tracks are dynamically mixed in browser memory via AudioContext.createMediaStreamDestination().
1080p @ 60fps ≈ 7.5 Mbps → 56 MB/min
720p @ 30fps ≈ 2.5 Mbps → 18.7 MB/min
Opus Audio Only ≈ 128 kbps → 0.96 MB/min
Bin Resolution: Δf = 48,000 / 256 = 187.5 Hz
VU Meter Normalization: μ = (∑ ampi) / 128
Dynamic Range: -100 dBFS to 0 dBFS
| Recording Mode | MIME Encoding | Audio Source | Typical Size / 10 Min |
|---|---|---|---|
| Screen & Audio | video/webm;codecs=vp9,opus | Display + Mic (Mixed) | 450 – 750 MB |
| Webcam HD Video | video/webm;codecs=vp8,opus | Microphone Input | 250 – 400 MB |
| Voice / Mic Only | audio/webm;codecs=opus | Microphone Input | 9.6 MB |
5 Critical Screen & Voice Recording Traps
1. System Audio vs Single Tab Permission Boundaries (macOS / Linux Limits)
On Windows and ChromeOS, checking "Share system audio" captures the full computer soundcard output. However, macOS strictly restricts system audio loopback without third-party kernel audio extensions (such as BlackHole or Soundflower). On Mac, recording with audio is only natively possible when selecting a specific Chrome tab rather than the "Entire Screen".
2. Browser Heap RAM Exhaustion on Long Unchunked Recordings
The MediaRecorder API stores captured blobs in JavaScript virtual machine heap memory. An unconstrained 2-hour 4K recording can consume 6 GB+ of RAM, causing the browser tab to crash with an "Aw, Snap! Out of Memory" error. We mitigate this by initializing MediaRecorder with mediaRecorder.start(1000) to emit discrete time-sliced 1-second chunks.
3. WebM VP9/Opus Codec Incompatibility in Apple QuickTime & Legacy Editors
Browsers natively encode video into open-standard WebM containers using Google VP9 video and Xiph Opus audio. While WebM plays perfectly in Chrome, Firefox, Edge, VLC, and YouTube, Apple's native QuickTime player on macOS/iOS refuses to open WebM containers without converting to H.264 MP4.
4. Sample Rate Resampling Jitter (44.1 kHz vs 48 kHz Clock Drift)
Computer display streams typically output audio clocked at 48,000 Hz, while standard external USB microphones often default to 44,100 Hz. If both streams are simply multiplexed without resampled synchronization, the microphone audio gradually drifts out of sync by several frames after 15 minutes. Routing both through a unified AudioContext ensures synchronized hardware clock resampling.
5. High-DPI Retina Scaling Blurring Text Captures
On high-DPI (2x or 3x device pixel ratio) laptops like MacBooks or Surface devices, capturing with fixed low-resolution constraints downsamples text rendering into fuzzy blur. Our studio requests unconstrained native display resolution with cursor: 'always' to preserve razor-sharp code and terminal typography.
Frequently Asked Questions: Screen, Camera & Voice Recorder
All video and audio streams are encoded directly inside your browser memory using the standard HTML5 MediaStream Recording API. No video, audio, or metadata is ever transmitted over the network or saved on any server.