To record your screen in a browser, open Zro7 Screen Recorder, click Start, pick the screen / window / tab, and Zro7 captures the stream via getDisplayMedia(), encodes it with the built-in MediaRecorder, and saves a WebM (VP9 / Opus) or MP4 (H.264 / AAC on Safari) file locally.
The APIs behind it
navigator.mediaDevices.getDisplayMedia({ video, audio })— prompts the OS picker; returns a MediaStream.new MediaRecorder(stream, { mimeType })— starts encoding chunks in the browser.recorder.ondataavailable— pushes each chunk into an array.- On stop →
new Blob(chunks, { type })→URL.createObjectURL→ download.
System audio (the tricky bit)
- Chrome on Windows/ChromeOS: pick Chrome tab + tick Share audio to capture tab audio.
- Chrome on macOS: system audio isn't exposed by the OS; a workaround is BlackHole or Loopback as a virtual input.
- Firefox: window/screen audio not supported; tab audio via Share audio works.
- Safari:
getDisplayMediaworks from 13+, no audio capture.
Codec choice
Prefer video/webm;codecs=vp9,opus for size/quality on Chrome/Firefox. Safari records video/mp4;codecs=h264,aac natively. To share with editors that reject WebM, run the file through Zro7 Video Converter for a local MP4 remux — no re-upload.
Long recordings
MediaRecorder produces one Blob at stop. For 30 min+ sessions, pass timeslice (e.g. 10 000 ms) so chunks are collected regularly, and stream them straight into an OPFS file — Zro7 does this on captures over 5 minutes to avoid a big final memory copy.
Steps
- Open Screen Recorder.
- Click Start Recording, choose the surface (Screen / Window / Tab).
- Stop when done; download the .webm / .mp4.
- Optional: trim with Zro7 Video Trimmer.
Zro7