How to make any video small enough to email — mac, windows, or linux
- Step 1Open the tool in any browser — Chrome, Edge, Firefox, or Safari — on macOS, Windows, or Linux. There's nothing to download or install; the page loads the engine on demand when you run.
- Step 2Drop your clip — Drag in an
MP4,MOV(incl. iPhone/Mac HEVC),MKV,WebM,AVI,M4V, orTS. A<video>probe reads duration cross-platform so the bitrate budget is the same on every OS. - Step 3Pick the target — Set
Targetto GMAIL (24 MB) or OUTLOOK (19 MB). The control and the math are identical regardless of platform — there is no Mac-only or Windows-only behaviour. - Step 4Run it — Click Run Email Fit. On a machine with H.264 GPU encode (common on modern Macs and Windows laptops via WebCodecs), it uses the hardware path; on Firefox/older Safari it uses FFmpeg.wasm. The output MP4 is equivalent.
- Step 5Download and attach — Download the MP4 — it lands in your OS's normal Downloads folder — and attach it in your mail client. Under the cap, it stays a real attachment.
- Step 6Repeat across machines without re-learning anything — Switch from your Mac to a Windows desktop to a Linux box and the steps don't change. Sibling compressors such as discord-compressor and whatsapp-compressor share the same local-engine model for other size caps.
The old per-OS way vs JAD
What people normally do on each platform, and why one browser tool replaces all of it.
| Platform | Typical native approach | Friction | JAD |
|---|---|---|---|
| macOS | Finder Quick Action 'Encode Selected Video Files', QuickTime export, or HandBrake | Limited size control; or an app install / AppleScript | Same browser tool, GMAIL/OUTLOOK preset |
| Windows | Photos app, Clipchamp, or ffmpeg via PowerShell | App quirks or hand-written ffmpeg flags | Same browser tool, no install |
| Linux | Raw ffmpeg -i ... -b:v ... command | Must compute bitrate and remember flags | Same browser tool, bitrate computed for you |
| Any (Chromebook, locked-down) | Often nothing available / blocked installs | No native option | Works in the browser, nothing to install |
Encode path by browser
Which path runs depends on browser + GPU support for H.264 encode, not on the OS name. Output is the same MP4 regardless.
| Browser | Typical path | Speed | Output |
|---|---|---|---|
| Chrome / Edge | WebCodecs hardware H.264 (when GPU supports it) | Fast (5–10x software) | H.264 + AAC MP4 |
| Safari (recent, macOS) | WebCodecs H.264 where available, else FFmpeg.wasm | Fast or fallback | H.264 + AAC MP4 |
| Firefox | FFmpeg.wasm (libx264) fallback | Software speed | H.264 + AAC MP4 |
| Mobile browsers | Hardware if available; FFmpeg.wasm rejects > 80 MB sources | Varies | H.264 + AAC MP4 |
Cookbook
Same task, different machines — showing the workflow doesn't change across macOS, Windows, and Linux. Sizes approximate.
Mac: iPhone HEVC .mov, no HandBrake
An AirDropped iPhone clip is HEVC .mov and over the cap. Instead of installing HandBrake or scripting QuickTime, run it in the browser.
OS: macOS · Browser: Safari/Chrome Input: IMG_2290.mov · 46 MB · HEVC · 40 s Target: GMAIL (24 MB) Output: img-2290.mp4 · ~23 MB · H.264 Note: no HandBrake, no AppleScript
Windows: .avi from an old camera
A legacy .avi too big for Outlook. No need for Clipchamp or a PowerShell ffmpeg line.
OS: Windows 11 · Browser: Edge Input: clip001.avi · 88 MB · 2 min Target: OUTLOOK (19 MB) Path: WebCodecs HW H.264 Output: clip001.mp4 · ~18 MB
Linux: skip the ffmpeg flags
On Linux the native route is a raw ffmpeg command with a hand-computed bitrate. The tool computes the bitrate for you.
OS: Ubuntu · Browser: Firefox Input: recording.mkv · 120 MB · 90 s Target: GMAIL (24 MB) Path: FFmpeg.wasm (Firefox) — same build as on Win/Mac Output: recording.mp4 · ~23 MB
Chromebook: nothing to install
On a managed Chromebook with no app installs allowed, the browser tool is often the only option.
OS: ChromeOS (managed) Constraint: no app installs Action: open JAD, drop clip, pick OUTLOOK, run Output: ~18 MB MP4, fully local
Same clip, three machines, same result
Demonstrating consistency: the identical 60-second source compressed on Mac, Windows, and Linux all land under the cap with the same settings.
Source: demo.mp4 · 60 s · 72 MB (same file everywhere) Target: GMAIL (24 MB) on all three macOS (Chrome): ~23 MB (HW path) Windows (Edge): ~23 MB (HW path) Linux (Firefox): ~23 MB (FFmpeg.wasm) Result: same output, no per-OS tweaking
Edge cases and what actually happens
Output differs slightly between machines
ExpectedA hardware-encoded file (Chrome/Edge) and a software-encoded one (Firefox) can differ by a few hundred kilobytes and in fine detail, even on the same source, because they're different H.264 encoders. Both stay under the same cap and play identically — the variance is normal, not a bug.
Firefox is slower than Chrome on the same machine
By designFirefox lacks the WebCodecs H.264 encode path here, so it uses FFmpeg.wasm (libx264) — correct output, but software speed. For the fastest encode on any OS, use Chrome or Edge where the GPU hardware path is available.
iPhone/Mac HEVC clip wouldn't preview before
Fixed by re-encodeHEVC .mov files from Apple devices don't always preview in mail clients. The output is always H.264 MP4, so the compressed file previews everywhere regardless of which OS you encoded on.
Compressing on a phone with a big file
Mobile capOn mobile browsers without hardware encode, the FFmpeg.wasm fallback won't take sources over 80 MB and asks you to trim or use desktop. Above 720p it auto-downscales to 720p to fit the phone's memory. Desktop (any OS) has no such 80 MB limit — only the tier file cap.
'Could not determine video duration'
RejectedIf a container is broken and the duration can't be read, the encode refuses to guess a bitrate and throws this error — same behaviour on every OS. Re-export, or rewrap to a clean MP4 with the transcoder.
Unsupported container dropped in
Invalid inputOnly MP4, MOV, MKV, WebM, AVI, M4V, and TS are accepted on all platforms. Other inputs are rejected with a clear message. Convert odd formats to MP4 with the transcoder first.
Long clip looks bad regardless of OS
Quality limitThe 24 MB / 19 MB caps constrain quality by duration on every platform — past ~10 minutes the video bitrate hits the 200 kbps floor. Trim long footage with the lossless trimmer or send a link; the OS doesn't change the math.
Source larger than your tier limit
RejectedSource caps are by tier, not OS: Free 1 GB / 1 file, Pro 10 GB / 5 files, Pro + Media 100 GB / 50 files, Developer 100 GB / unlimited. A source over your tier's per-file limit is rejected before encoding on any platform.
Frequently asked questions
Does this work the same on Mac and Windows?
Yes — and on Linux and ChromeOS. It's one browser tool with identical controls and identical bitrate math on every platform. There's no Mac-only or Windows-only version and no OS-specific steps.
Do I need to install HandBrake on my Mac?
No. The tool bundles FFmpeg.wasm and uses WebCodecs hardware encode where your browser supports it, so you get HandBrake-class compression in a browser tab with no install, no AppleScript, and no QuickTime export dance.
What about Windows — do I need Clipchamp or a PowerShell ffmpeg command?
No. Drop the clip, pick GMAIL or OUTLOOK, and run. It computes the bitrate for you, so there's no ffmpeg command to write and no app to install.
Can I use it on Linux?
Yes, in any modern browser. It replaces the usual raw ffmpeg -i ... -b:v ... command — same FFmpeg.wasm build as on Mac and Windows, with the bitrate computed from your clip's duration.
Will the output be the same on every OS?
It'll be the same format (H.264 MP4) and under the same cap. Exact bytes can differ slightly between the hardware path (Chrome/Edge) and the FFmpeg.wasm path (Firefox), but both play identically and stay under the limit.
Why is it faster in Chrome than Firefox?
Chrome and Edge expose WebCodecs H.264 GPU encode (the fast hardware path). Firefox falls back to FFmpeg.wasm (software). Both produce correct output; use Chrome/Edge for speed on any OS.
Does it handle iPhone .mov files on a Mac?
Yes. iPhone/Mac HEVC .mov is accepted and re-encoded to H.264 MP4, which both shrinks it under the cap and fixes the 'won't preview in email' issue HEVC sometimes causes.
Is my video uploaded on any platform?
No — the encode is fully local on every OS. The clip never leaves your machine, so privacy is identical whether you're on Mac, Windows, or Linux.
What input formats are accepted?
MP4, MOV, MKV, WebM, AVI, M4V, and TS — the same set on every platform. The output is always an email-friendly H.264 MP4.
What's the size limit on the source file?
By tier, not OS: Free 1 GB (1 file), Pro 10 GB (5 files), Pro + Media 100 GB (50 files), Developer 100 GB (unlimited). On mobile without hardware encode, FFmpeg.wasm additionally won't take sources over 80 MB.
Can I batch-compress several clips?
On paid tiers the batch count rises (Pro 5, Pro + Media 50). Dropping multiple files runs them through the same email target. For different caps per file, run them separately or use the discord / whatsapp compressors.
Can I run it from a script across machines?
Yes — the @jadapps/runner exposes a local endpoint. Fetch the schema from GET /api/v1/tools/email-compressor and POST to http://127.0.0.1:9789/v1/tools/email-compressor/run. Same local-only model on Mac, Windows, and Linux.
Privacy first
Every JAD Video tool runs entirely in your browser via WebCodecs and FFmpeg (WebAssembly). Your video files never leave your device — verified by zero outbound network requests during processing.