Start free
Glossary · Mediarecorder

MediaRecorder.

The browser API that takes a `MediaStream` (from screen capture or microphone) and produces encoded video/audio data as `Blob` chunks via the `ondataavailable` event. Every browser-based screen recorder uses it.

How chunks work

Constructed with a `timeslice` (Screendog uses 2000ms), `MediaRecorder` emits a `dataavailable` event every interval with the next encoded chunk. Push these to your server as they arrive (streaming upload) or buffer and upload at stop.

Why event ordering matters

`dataavailable` is synchronous, but reading the chunk via `arrayBuffer()` is async. Naïve code interleaves reads and ships chunks out of order. Screendog's record.html uses a single drain worker that awaits each chunk in source order.

Frequently asked

What format does it produce?

Configurable via `mimeType`. Defaults to WebM in Chrome/Firefox/Edge. Safari produces MP4 (H.264).

Try Screendog free.

5 recordings on the free trial. Real Linear, GitHub, Notion, Slack, and Jira filing. No credit card.

Start a workspace — free