Record a screen, a window or a browser tab with system audio, your microphone, both or neither. The finished WebM carries its own length, so it seeks and scrubs where a plain browser recording reports no duration at all. Nothing is uploaded.
Initializing in your browser…
Remove a coloured background, with a preview that runs the export own arithmetic. Eyedropper colour picking, two named similarity measures, spill suppression, and a choice between a transparent MOV and a composite onto a new background.
Cut a clip out of a video, choosing whether the cut lands on the exact frame (re-encodes to MP4) or leaves the streams untouched (instant and lossless, but only at a keyframe). The result says which ran and reads the real length back off the file.
Convert a video between MP4, WebM, OGG, MOV, AVI and MKV, each naming the codecs it really writes and each producing a file that actually plays. One quality dial normalised into four different encoder scales.
You record a three second walkthrough and the finished clip has no scrubber, because a browser recording does not know its own length.
Input
A tab shared at 1080p 30 fps with the microphone on · stopped after 3 seconds
Output
screen-recording.webm · 3.039 s · 63 frames at 20.4 fps · VP8 and Opus · the length written into the header
MediaRecorder writes the header before it knows how long the recording will be, so Matroska’s Duration field is left empty and a <video> element reports Infinity: no scrubber and no end. This tool reads the finished file, measures the real length from the blocks (including the last Opus packet’s own duration, which the packet states in its first byte) and inserts eleven bytes into the header. Nothing is re-encoded, it took 7 ms, and ffprobe outside the browser now reads 3.039 s as well. The panel also prints the picture size, the frame rate the file really holds and the codecs, all read back off the finished file rather than taken from the request.
Record a screen, an application window or a browser tab straight from this page, with system audio, your microphone, both or neither. The recording never leaves your machine: the browser captures and encodes it, and there is no upload and no account. When you stop, the tool reads the finished file back and prints what it really turned out to be, then writes the recording’s own length into its header so the preview can be scrubbed and every player afterwards knows how long it is.
Record a step by step walkthrough with narration from your microphone. The finished file has a real length, so an editor or an upload form can read it without a repair pass of its own.
Capture the exact steps that reproduce a fault. A short WebM attached to an issue is far more use than a written description, and it plays and scrubs anywhere.
Record a slide deck or a product walkthrough with both system audio and your voice, summed rather than one silently replacing the other.
Record a section of a meeting or webinar for notes. Pause while nothing is happening and the recorded length reflects only what you kept.
Capture a coding session or a whiteboard for students to watch again. A 30 fps capture of a mostly still screen produces a small file, and the panel tells you exactly how small.
Turn the microphone on, leave system audio on, pick 1080p at 30 fps and share your editor window. Stop when you are done; the panel reports the real size, the frame rate and the length, and the preview scrubs because the length is now in the file.
Set the countdown to 3 seconds, share the tab, reproduce the fault and stop. Save the WebM and attach it to the issue: it carries its own duration, so the tracker’s player shows a working progress bar.
Turn both system audio and the microphone off. The tool asks for no audio at all, the recording has no audio track, and the result panel reports the audio row as none.
The capture comes from MediaDevices.getDisplayMedia and the encoding from MediaRecorder, both built into the browser. MediaRecorder writes Matroska, which is what a .webm file is, and it writes it LIVE: bytes go out as they arrive, so at the moment the header is written nobody knows how long the recording will be. The Duration field in Matroska’s Segment Information element is therefore never filled in, and it cannot be filled in later by a recorder that has already sent the header.
The consequence is easy to see and easy to miss. Hand that file to a <video> element and it reports a duration of Infinity and a seekable range ending at Infinity: there is no scrubber, the end cannot be reached, and anything downstream that asks how long the clip is gets nothing. Most browser screen recorders hand you that file. Measured here on a three second capture, the raw MediaRecorder output reported Infinity; the same recording after this tool has finished with it reports 3.039 seconds, and ffprobe, run outside the browser, agrees to the millisecond.
The repair is eleven bytes and no re-encoding at all. Matroska stores the duration as a float in an element that belongs in Segment Information, MediaRecorder puts that element before the first Cluster, its Segment declares an unknown size so nothing has to be adjusted around it, and MediaRecorder writes neither a SeekHead nor a Cues element, so there are no stored byte offsets that inserting bytes could invalidate. The tool checks all three of those before touching anything and refuses rather than guessing if the file is not the shape it expects. The length it writes is measured from the blocks themselves, including the last audio packet’s own duration, which Opus states in the first byte of every packet. Every frame and every sample is copied through untouched, and it took 7 milliseconds on the test recording.
The result panel then reports what the file IS rather than what was asked for. Quality and frame rate are requests: a capture is never enlarged past what the window really contains, so asking for 4K while sharing a 900 pixel window gives a 900 pixel file, and a screen that is not changing produces far fewer frames than the rate you chose. The panel prints the picture size, the frame count, the frame rate the file actually holds, the codecs, the real byte size, the measured bitrate and the recorded length beside the clock time, and says so plainly when the source gave you something other than the preset you picked.
MediaRecorder writes the file as it records, so when the header goes out the length is not yet known and the Duration field is left empty. A <video> element then reports Infinity and cannot seek. This tool reads the finished recording, works out its real length from the blocks themselves, and writes eleven bytes into the header. Nothing is re-encoded and no quality is lost; it took 7 milliseconds on a three second test recording.
The quality preset is a request. A capture is never enlarged past what the source really contains, so sharing a 900 pixel window while asking for 4K gives a 900 pixel recording. The result panel prints the size you asked for and the size you got, and says which happened.
A screen only produces a frame when something on it changes, so a still page recorded at 60 fps yields far fewer than 60 frames a second. The panel reports the rate the file really holds, measured from the frames in it, rather than the rate that was requested.
It depends on the platform, not on this page. Chrome and Edge on Windows can share the audio of a whole screen or a tab; macOS shares tab audio only, and Firefox and Safari share none. Turn it on here and the browser will offer it where it can. If the recording comes back silent, the audio row in the result panel will say so.
There is no limit in the tool. The practical ceiling is memory: the recording is held in the browser until you save it, and reading it back to write the length needs it in memory once more. Long sessions are safer recorded in parts.
The WebM is the recording itself, so saving it is instant. MP4 cannot hold the VP8 video the browser produced, so every frame is decoded and encoded again as H.264 in ffmpeg running inside the page. That takes real time and loses a generation of quality, which is why it is a separate button rather than a download format.
The browser shows an indicator while screen capture is active, and it cannot be turned off. That is a browser security feature and has nothing to do with this page.
No. It records a screen, a window or a tab, plus audio. Camera capture is a different thing and this tool does not do it.
Video is decoded and re-encoded on your own device. Large files never leave your machine.