Screen recording used to require dedicated software like OBS, Camtasia, or Loom. Modern browsers now support screen recording natively through the Screen Capture API (getDisplayMedia), making it possible to record your screen entirely in the browser with no installation required.
How browser screen recording works
The Screen Capture API works in three steps:
- Request permission:
navigator.mediaDevices.getDisplayMedia()prompts the user to select a screen, window, or browser tab to share - Capture the stream: The browser returns a
MediaStreamof the selected source - Record to file:
MediaRecorderencodes the stream into a video file (WebM format) that can be downloaded
// The core API — simplified
const stream = await navigator.mediaDevices.getDisplayMedia({
video: { frameRate: 30 },
audio: true
})
const recorder = new MediaRecorder(stream, {
mimeType: 'video/webm;codecs=vp9'
})
const chunks = []
recorder.ondataavailable = e => chunks.push(e.data)
recorder.onstop = () => {
const blob = new Blob(chunks, { type: 'video/webm' })
const url = URL.createObjectURL(blob)
// Use url to play back or download the recording
}
recorder.start()
What you can capture
When getDisplayMedia() runs, the browser shows a picker with three options:
- Entire screen: Captures everything on your monitor, including other applications
- Application window: Captures a single app window. Other windows are excluded.
- Browser tab: Captures only a specific browser tab. Audio from that tab is included automatically.
The choice affects both privacy (other windows are excluded in app/tab mode) and quality (tab capture can include the tab's audio without system audio routing).
Audio recording options
System audio capture depends on the browser and operating system:
| Scenario | Chrome (Windows/Mac) | Firefox | Safari |
|---|---|---|---|
| Tab audio | Yes | Yes | No |
| System audio | Windows only | No | No |
| Microphone audio | Via getUserMedia | Via getUserMedia | No |
For cross-platform audio, the most reliable approach is tab audio capture (captures whatever plays in the browser tab). System audio capture on Mac requires additional OS-level permissions.
To record microphone audio alongside screen recording, you can combine two streams:
const screenStream = await navigator.mediaDevices.getDisplayMedia({ video: true })
const micStream = await navigator.mediaDevices.getUserMedia({ audio: true })
// Combine tracks into one stream
const combinedStream = new MediaStream([
...screenStream.getVideoTracks(),
...micStream.getAudioTracks()
])
Video format and quality
Browser screen recordings use WebM format with VP8 or VP9 video codec. VP9 produces significantly smaller files than VP8 at the same quality.
| Format | Codec | Browser support | File size |
|---|---|---|---|
| WebM/VP9 | VP9 | Chrome, Edge, Firefox | Small |
| WebM/VP8 | VP8 | All modern browsers | Medium |
| MP4/H.264 | H.264 | Safari (partial) | Medium |
WebM is not natively supported in QuickTime Player on macOS or Windows Media Player. To play WebM files on any device, use VLC media player, or convert to MP4 using FFmpeg or an online converter.
Frame rate: 30 fps is the standard. Recording UI walkthroughs or presentations at 24 fps saves file size without visible quality loss. Only game recording benefits from higher frame rates.
Common use cases
Tutorial and walkthrough recording
Record a browser tab while narrating via microphone. Tab capture ensures only the relevant content is captured, not desktop notifications or other windows.
Bug reporting
Record the exact steps that reproduce a bug. A 30-second recording is far more effective than a written description of "it broke when I clicked X."
Remote collaboration
Show a colleague how a feature works or demonstrate an issue during asynchronous collaboration.
Presentation recording
Record a browser-based presentation (Google Slides, reveal.js) with voiceover for distribution.
File size expectations
| Duration | 720p | 1080p |
|---|---|---|
| 1 minute | ~5 MB | ~12 MB |
| 5 minutes | ~25 MB | ~60 MB |
| 15 minutes | ~75 MB | ~180 MB |
File sizes vary significantly based on motion — a static slide deck compresses to a fraction of a screenscast with active scrolling and animations.
Browser compatibility
| Browser | Screen Recording | System Audio |
|---|---|---|
| Chrome 72+ | Full support | Windows only |
| Edge 79+ | Full support | Windows only |
| Firefox 66+ | Full support | No |
| Safari | No | No |
| iOS/Android | No | No |
Safari and all iOS browsers do not support getDisplayMedia. For Safari users or mobile devices, dedicated apps like QuickTime (macOS), Xbox Game Bar (Windows), or platform screen recording shortcuts are needed.
How to record your screen free
- Go to Screen Recorder
- Click Start Recording — the browser shows the screen picker
- Select Screen, Window, or Tab from the picker
- Optionally enable microphone audio
- Click Share to begin recording
- Use Pause to temporarily stop and Resume to continue
- Click Stop Recording when done
- Preview the recording, then click Download to save as WebM
Everything runs in your browser — no video is sent to any server.