ToolActToolAct

Screen Recorder

Record your screen, window, or browser tab with optional audio, download instantly

Not Started

Recording Preview

Select a source and start recording

What is Screen Recorder?

The Screen Recorder captures a full screen, application window, or browser tab directly from the browser. Depending on browser support and permissions, it can also include system audio and microphone input for quick tutorials, bug reproductions, product demos, class clips, design reviews, and support explanations without installing separate software. Before recording, users should check for private windows, notifications, passwords, customer data, or unrelated tabs, because the captured area is recorded exactly as selected. Processing is local and the resulting file can be downloaded afterward, but video quality, audio tracks, and available sources depend on the browser and operating system.

How to Use

How to use

  1. Select what to record: entire screen, window, or browser tab
  2. Choose audio settings (optional)
  3. Click "Start Recording" and select what to share
  4. Click "Stop Recording" when done
  5. Download or preview your recording

Tips

  • Close unnecessary notifications before recording
  • For system audio, choose "Browser Tab" and check "Share audio"
  • You can pause and resume during recording
  • Use a stable network connection for best results

Use Cases

Record a screen, window, or browser tabChoose screen, window, or tab capture and start recording through getDisplayMedia. The selected stream is previewed live, and recording stops automatically if the shared display track ends, while the chosen MediaRecorder codec (VP8, VP9, or H.264 in WebM/MP4) determines the output container.
Include the right audio sourceAudio options cover none, system audio, microphone, or both when the browser and selected capture source support them. System-audio capture only works on tab sources in most browsers, and the prompt that asks for tab audio is independent of the microphone permission, so a denied mic will not block tab audio. The AudioContext constraint echoCancellation, noiseSuppression, and autoGainControl can also be tuned on the microphone track for clearer voice, though enabling them usually adds a small amount of latency that may matter when narrating against a screencast.
Save local WebM or MP4 recordingsThe recorder chooses the best supported MediaRecorder MIME type, supports pause and resume, tracks duration, then lists recordings with preview, download, and delete controls. Object URLs are revoked when recordings are deleted. Check playback in the destination app before deleting the source recording. Frame rate and videoBitsPerSecond knobs trade off smoothness against file size, so a 30 fps 4 Mbps WebM keeps a software demo readable while staying under most LMS upload caps.
Pause and resume to skip sensitive segmentsHit pause before typing credentials, switching chat windows, or opening unrelated tabs, then resume once the sensitive moment passes. The MediaRecorder stays in a single file, so the resulting WebM or MP4 will not contain the masked portion when trimmed with a standard editor. Some platforms auto-stop sharing after 30 minutes regardless of pause, so long sessions should be split into separate clips before that limit hits.
Check supported MIME types before recordingBrowsers expose different MediaRecorder codecs such as video/webm;codecs=vp9, vp8, or H.264 in MP4 containers. Inspect the listed supported type before starting, and pick a fallback codec if your downstream editor or LMS rejects the default container.

Technical Principle

Capture starts with navigator.mediaDevices.getDisplayMedia({ video: true, audio: true }), which returns a MediaStream containing one video track (the chosen screen, window, or tab) and optionally one audio track when the browser and source allow it. The user picks the surface in a native picker dialog, and the stream ends automatically when the user clicks the system Stop sharing button, which fires the track's ended event so the recorder can finalize the file. The encoded output is produced by the MediaRecorder API. Container and codec selection goes through MediaRecorder.isTypeSupported() against candidates like video/webm;codecs=vp9,opus, video/webm;codecs=vp8,opus, and on Safari video/mp4;codecs=avc1. ondataavailable fires periodically (or on stop), delivering Blob chunks that are concatenated into a single Blob with the recorded mimeType. videoBitsPerSecond and audioBitsPerSecond trade quality for file size, and a typical 1080p screencast at 4 Mbps VP9 lands around 30 MB per minute. When both system audio and microphone are requested, the page builds an AudioContext, wraps each MediaStreamTrack in a MediaStreamAudioSourceNode, and mixes them through a GainNode into a MediaStreamAudioDestinationNode. The merged audio track replaces the original streams before MediaRecorder starts, so the resulting WebM carries a single mixed Opus track instead of two separate ones. Browser support requires Chrome 72+, Firefox 66+, or Safari 13+; older browsers either refuse getDisplayMedia or omit the audio constraint.

  • Capture API: navigator.mediaDevices.getDisplayMedia({ video, audio }) returns a MediaStream; the user picks screen/window/tab in a system dialog
  • Encoder: MediaRecorder with isTypeSupported() probing video/webm;codecs=vp9,opus first, falling back to vp8 or H.264/AVC1 in MP4
  • Chunked output: ondataavailable yields Blob slices that are concatenated and wrapped in a Blob of the negotiated mimeType
  • Audio mixing: AudioContext + MediaStreamAudioSourceNode + GainNode + MediaStreamAudioDestinationNode merge system audio with the mic into one Opus track
  • End-of-stream trigger: the video track's ended event fires when the user clicks the browser's Stop sharing bar, finalizing the recording
  • Bitrate control: videoBitsPerSecond around 2.5-8 Mbps for 1080p; 4 Mbps VP9 is roughly 30 MB per minute
  • Browser baseline: Chrome 72+, Firefox 66+, Safari 13+; tab audio capture only works in Chromium-based browsers with the Share tab audio checkbox

Examples

Software tutorial, 10 minutes at 1080p

Source: Entire screen (1920 x 1080)
Audio: Microphone only
Codec: video/webm;codecs=vp9, opus
Frame rate: 30 fps
Duration: 10:00
Output: tutorial.webm, ~190 MB
Use: product walkthroughs, LMS upload

Bug reproduction with system audio

Source: Browser tab (Chrome)
Audio: System audio (tab audio shared in dialog)
Codec: video/webm;codecs=vp8, opus
Duration: 0:45
Output: bug-repro-2026-06-10.webm, 7.2 MB
Attached to: GitHub issue #1284

Online meeting clip with mic + system audio

Source: Application window (Zoom)
Audio: System + Microphone (both)
Duration: 3:20
Output: meeting-snippet.webm, 42 MB
Note: pause used at 1:15 to skip credential entry, then resume

Product demo for app store

Source: Application window (1280 x 720)
Audio: None (silent demo for caption overlay later)
Frame rate: 30 fps, bitrate: 4 Mbps
Duration: 0:30
Output: demo.mp4 (if H.264 supported) or .webm fallback
Size: ~15 MB, fits app store preview cap

FAQ

How does the screen recorder work?

It uses the browser's MediaRecorder API on a screen-share MediaStream from getDisplayMedia. The browser asks you what to share (full screen / window / tab); the page records frames to a video blob in memory and offers download when you stop. No recording servers, no cloud, no upload.

What format and codec is used?

WebM with VP8 or VP9 video codec (depending on browser support), Opus audio. Most modern browsers, video editors, and players handle WebM natively. To export MP4, transcode locally with FFmpeg after download.

Can I include system audio?

Some browsers/operating systems allow tab-audio or system-audio capture during getDisplayMedia. Chrome on Windows is the most permissive; Safari and Firefox are more limited. Microphone audio (your voice) is recorded separately if you grant permission.

What's the maximum recording length?

Browser memory is the limit since the recording is held in RAM until you stop. Practical limit: 10-60 minutes depending on resolution and bitrate. For longer recordings or high-quality screencasts, OBS Studio (desktop) is more capable - it streams to disk and has no memory ceiling.

Is my recording uploaded anywhere?

No. The recording is local to your browser. Downloading saves the WebM file to your device. Nothing is transmitted to a server unless you explicitly share the file.

Why is the recording laggy or low quality?

Capturing screen and re-encoding is CPU-intensive. Close other apps, lower the recording resolution if possible, and pick a single window or tab instead of full screen. Hardware encoding (h264 via WebCodecs API) helps where supported but isn't universal yet.

Can I trim or edit the recording?

Not in this tool. Download the WebM file and use a video editor (DaVinci Resolve, Shotcut, FFmpeg command-line) to trim, transcode, or annotate.