Compress a video to roughly 10 MB by re-encoding it locally in your browser with the Video Compressor, which converts a single source file into a WebM using one of three presets and reports the exact output bytes so you can verify the size before downloading. The 10 MB target is popular because it sits comfortably under Gmail's 25 MB attachment limit, well below typical form-upload caps, and small enough to slip through messaging apps that reject larger clips. The tool works entirely inside the current tab: it draws each frame of the playing source into a bounded HTML Canvas, records that Canvas with a WebM codec supplied by your browser, and hands you a downloadable file once the source finishes playing. Because the recorder observes the Canvas stream while the source plays, a two-minute clip takes about two minutes to finish — there is no faster path that uses this approach. You cannot type "10 MB" as a target and expect that exact size back; instead, you choose Small, Balanced, or Quality, read the measured byte change, and re-run with a different preset if the result is not where you want it.

Why a 10 MB Video Is a Common Goal
People compress videos to roughly 10 MB for a small set of practical reasons. Email attachments stay under the 25 MB Gmail ceiling with safety margin. Many job applications, ticket forms, and school portals cap uploads at 5–20 MB. Chat platforms such as WhatsApp, basic Slack tiers, and free Discord servers reject files above 8–25 MB. A 10 MB file also streams smoothly on spotty mobile data without buffering. None of these destinations care about the container format as long as the file plays, which is why a small WebM is an acceptable trade.
The catch is that "10 MB" is rarely a setting; it is a target you hit by choosing the right combination of resolution, frame rate, and bitrate for the duration of your clip. Longer videos need lower bitrates to land at 10 MB, and bitrate is what most directly controls file size for a given length. For the email-specific path, see the guide to sending compressed videos by email once you have your WebM ready.
Why the Video Compressor Fits the 10 MB Target
The Video Compressor is built for this kind of bounded re-encoding. You hand it one browser-decodable video, pick a preset, and it produces a WebM you can download. Three things make it well-suited to a 10 MB target:
- Local processing. Decode, Canvas drawing, MediaRecorder encoding, and download all happen in the current tab. Source bytes and output bytes never leave your device, so an upload-heavy service is not in the loop.
- Bounded output. Each preset clamps width and frame rate. Small caps width at 640 px and targets 24 fps, Balanced caps at 1280 px and 30 fps, and Quality caps at 1920 px and 30 fps. The recorder's bitrate is itself clamped between 180 kbps and 8 Mbps.
- Transparent size reporting. The tool prints the actual input bytes, output bytes, and signed percentage change. You do not have to trust a marketing claim — you read the number and decide whether the file suits your destination.
Input is limited to 500 MiB, five minutes, up to 4096 pixels on either side, and no more than 3840 × 2160 pixels of decoded area. Those limits are not arbitrary; they bound the memory the browser has to allocate for decoded frames and the Canvas drawing surface, which keeps the real-time encode from crashing on a long source. The MediaRecorder and Canvas capture APIs that make this possible are documented on MDN: MediaRecorder and HTMLCanvasElement.captureStream().
The Three Presets at a Glance
| Preset | Max output width | Target frame rate | Typical fit for a 10 MB target |
|---|---|---|---|
| Small | 640 px | 24 fps | Best starting point for most clips up to a few minutes long |
| Balanced | 1280 px | 30 fps | Reaches 10 MB only for very short clips or low-motion content |
| Quality | 1920 px | 30 fps | Rarely lands at 10 MB; designed for higher-size targets |
All three presets preserve the source aspect ratio, never enlarge a smaller source, and round output dimensions down to even pixel values for broader codec compatibility. The bitrate for any preset is chosen by a bounded bits-per-pixel heuristic that the tool does not expose directly, so the actual byte total remains content-dependent even at the same preset.
How to Compress a Video to About 10 MB
- Open the Video Compressor in a current desktop browser such as Chrome, Edge, Firefox, or Safari.
- Choose a source file that is browser-decodable, no larger than 500 MiB, no longer than five minutes, no more than 4096 pixels on either side, and no more than 3840 × 2160 pixels of decoded area. Files named MP4, WebM, MOV, M4V, or Ogg may work, but the codec inside must still be supported by your browser.
- Pick the Small preset first. It is the most reliable starting point for a 10 MB target on clips of more than a few seconds.
- Click the start control and keep the tab open and focused while the source plays. The encoder runs in real time, so a two-minute source takes about two minutes. Closing or refreshing the tab invalidates the active job.
- When the source ends, the tool reports the output dimensions, the input byte count, the output byte count, and the signed percentage change.
- If the result is too big, shorten the source first or pick a tighter preset — the same small WebM that fits an email attachment also fits most chat uploads. If the result is too small and you would accept more pixels, re-run with Balanced.
- Download the WebM, play it fully in a fresh tab to confirm picture and audio, and only then delete the original.
Estimating Whether a Preset Will Land Near 10 MB
File size is roughly bitrate times duration divided by eight (the eight converts bits to bytes). The formula is:
File size (bytes) ≈ bitrate (bits per second) × duration (seconds) ÷ 8
For a 60-second clip you want to land at 10 MB, the math works out to about 1.33 Mbps of average video bitrate:
10,000,000 bytes × 8 bits/byte ÷ 60 seconds = 1,333,333 bits/second ≈ 1.33 Mbps
That means a 30-second clip needs roughly 2.67 Mbps on average to hit 10 MB, a two-minute clip needs about 0.67 Mbps, and a five-minute clip needs about 0.27 Mbps — above the 180 kbps floor of the tool's bitrate clamp. If your preset would need to drop below the clamp to hit 10 MB on a long source, the realistic move is to trim the duration first, not to expect a magic lower bitrate. The tool reports the actual numbers at the end of every run, so use the formula to plan and the report to verify.
When a Single Pass Will Not Reach 10 MB
Some sources simply cannot reach 10 MB through one compression pass without unacceptable loss:
- The clip is too long. A five-minute source at the lowest clamped bitrate is still well over 10 MB. The right fix is to cut it shorter before re-encoding.
- The content is high-motion or noisy. Sports footage, concert video, and grainy low-light scenes resist compression. The encoder will spend more bits to preserve detail, and the output stays larger.
- The source codec is already efficient. A clip produced by a modern hardware encoder (H.264 or HEVC at low bitrate) may already be near its information-theoretic floor. Re-encoding to WebM can match or exceed the original size; the tool will honestly report that as a positive or near-zero percentage change.
- The browser picked a different WebM codec. The recorder tries VP9, then VP8, then generic WebM according to what the current browser reports. The same source on Chrome and Firefox can therefore produce different byte counts even with the same preset.
If the result does not suit your needs, try a different preset, shorten the source, or accept that the target is unreachable for that particular content. Compression is content dependent and the tool never labels a larger file as a reduction.
What the Compressor Does Not Preserve
WebM is the only output container, because browser MediaRecorder support for generated MP4 remains inconsistent across browsers. Audio is included only when the browser exposes a capturable audio track on the source — verify both picture and sound in the downloaded file. Subtitles, chapters, attachments, rotation tags, color metadata, HDR signaling, and many other container features are not carried through. The recorder also does not normalize volume, mix tracks, or repair corrupt media. None of these limits affect whether the result lands near 10 MB, but they matter if the destination has specific requirements about metadata or accessibility.
For deterministic, cross-platform output with exact codec profiles, two-pass rate control, fixed keyframe intervals, or subtitle preservation, use a maintained desktop encoder such as FFmpeg with a reviewed command. The browser path is the right choice when the priority is a fast, local, no-upload reduction to roughly 10 MB for sharing through email, forms, or chat.
For a deeper look, see Best Video Format to Upload to YouTube: Resize Locally.