Video Compressor is a browser-based utility that re-encodes a local video on your Mac into a WebM file using a preset maximum width, frame rate, and bitrate, and then reports the actual byte change between the original and the output. The whole pipeline runs inside the active tab: the file is decoded, drawn into a Canvas, recorded by the browser's MediaRecorder, and offered for download without ever leaving the device. Because everything happens locally, Mac users do not need to install a system-wide codec, grant accessibility permissions, or move a recording off the laptop just to make it smaller. The tool does not promise a fixed percentage reduction; it shows the real input and output byte counts and lets you decide whether the result suits your purpose.

Mac users tend to accumulate a specific mix of source files: iPhone clips exported as MOV or MP4, QuickTime Player screen recordings, downloads from messaging apps, and screen captures from apps such as OBS or Loom. The browser-decoding rule still applies, since the file extension only hints at what is inside and the actual codec depends on what the current browser (Safari, Chrome, or Firefox) can decode. The same tool page works on macOS Sonoma, Ventura, Sequoia, and earlier versions as long as the browser build supports MediaRecorder and Canvas captureStream.

how to compress video on mac
how to compress video on mac

How a Browser Compressor Fits on macOS

macOS already ships with tools that can shrink a video. QuickTime Player's File → Export As menu reduces resolution and trims bitrate, and iMovie's Share button produces smaller files suitable for Mail and Messages. Both routes work, but they each ask for something specific from the user: QuickTime asks you to re-encode through a fixed pipeline with limited control over resolution caps, and iMovie asks you to import the file into a project and then export a finished movie. A browser tool sidesteps both. You open a page, choose a file from Finder, pick a preset, and watch the output appear; the original is left untouched in its source folder, the encoded file is downloaded separately, and nothing about the system state changes between runs.

This is a useful fit on a Mac for two practical reasons. First, the same source file can be re-run through different presets quickly, which makes it easy to compare a chat-sized version against a presentation-sized version without juggling project files. Second, the browser environment enforces the same input rules each time (file size, duration, decoded dimensions), so the limits stay predictable across machines and operating-system point releases.

Get Your Mac Video File Ready for the Browser

Before opening Video Compressor, check the basics of the file you plan to use. The browser must be able to decode it, and the input must fit inside all of the following limits at the same time:

  • No more than 500 MiB on disk.
  • No more than five minutes (300 seconds) of decoded duration.
  • No more than 4096 pixels on either the width or the height side.
  • No more than 3840 × 2160 pixels of decoded area overall.

The filename extension only matters up to a point. Video Compressor accepts MP4, WebM, MOV, M4V, and Ogg. A valid extension cannot rescue an unsupported codec: if Safari, Chrome, or Firefox cannot decode the file, the tool will report an error rather than silently producing a result. The most reliable test is to drag the file into a new browser tab; if the browser can play it natively, the compressor can read it.

iPhone recordings in particular often exceed the dimension side limit when exported at full ProRes resolution from macOS apps, and long iPhone screen recordings can exceed the 300-second ceiling. In either case, a quick trim with macOS QuickTime Player (Command + T) or a short cut in the Video Trimmer brings the file inside the input window without changing the rest of the workflow.

Compress a Video on Mac Step by Step

  1. Open Video Compressor in Safari, Chrome, or Firefox on your Mac.
  2. Click the file chooser and pick a browser-decodable video that fits inside the 500 MiB, five-minute, and 3840 × 2160 pixel limits.
  3. Choose one of the three presets: Small, Balanced, or Quality. Each preset sets a maximum output width, a target frame rate, and a bits-per-pixel heuristic that drives the bitrate request.
  4. Start the compression. The source video will begin playing on the page in real time; keep the tab open and do not switch away during this process, because encoding observes the Canvas stream as the source plays.
  5. When the source ends, review the reported output dimensions, the input bytes, the output bytes, and the signed percentage change.
  6. Download the generated WebM and play it through to the end in a media player that handles WebM (VLC, IINA, or any modern browser) before deleting the original.

A two-minute source takes roughly two minutes to finish, because the encoder observes playback in real time. There is no separate progress bar to watch, since playback itself is the progress indicator.

Choosing Between Small, Balanced, and Quality

The three presets are explicit product choices rather than guesses about a universal optimum. Each one caps the output width, sets a target frame rate, and asks the encoder for a bitrate derived from the number of pixels it plans to draw per second. The actual bitrate is then clamped between 180 kbps and 8 Mbps before recording starts.

PresetMax output widthTarget fpsTypical use on a Mac
Small640 px24Email attachments, iMessage previews, animated thumbnails
Balanced1280 px30General sharing, social platforms, product demos
Quality1920 px30Screen recordings, slide exports, internal review

Every preset preserves the source aspect ratio, never enlarges the original, and rounds the output dimensions down to even pixel values so the resulting codec stream remains broadly compatible. A vertical phone clip stays vertical, a 1440-pixel-wide screen recording stays at or below 1440 pixels, and nothing is upscaled to fit a preset's ceiling.

Audio, Subtitles, and Metadata on Mac Sources

Mac sources frequently carry audio tracks, and Video Compressor includes them in the output stream whenever the browser exposes a capturable audio track through HTMLMediaElement captureStream. The mechanism is the same one described in the MDN captureStream reference: the source plays on the page, the recorder observes that playing stream, and any track the browser can hand to the recorder is folded into the encoded result.

During real-time processing the source video plays audibly through the Mac's normal audio path. Headphones are a practical option if you are running a long compression in a shared room, and you should not assume that muting the tab leaves the captured track silent, because MediaRecorder's track membership depends on what the browser exposes rather than what you hear.

Several things the file may have carried are not preserved in the output. Subtitles, chapters, attachments, rotation tags, color metadata, HDR signaling, and many container-specific features are dropped. iPhone recordings with HDR or rotation metadata are the most common case on a Mac where this matters: the video itself will look correct on a modern WebM player, but any orientation hint or HDR flag from the source will not transfer. Verify the downloaded file in a player that surfaces the output's actual dimensions and audio channels before treating the result as equivalent to the original.

When the Output Is Not Smaller and What to Do

Compression is content dependent, and the tool is explicit about this. A low-motion animation with flat color can shrink dramatically. Noisy footage, film grain, handheld camera shake, rapid scene changes, or a source that was already encoded efficiently can produce an output that is similar in size or even larger than the input. The percentage shown is calculated from the actual Blob sizes of the two files, so the tool never labels a larger file as a reduction.

If the first preset does not produce a useful result, try another preset rather than re-running the same one. Small applies the most aggressive constraints, so it is the right starting point for chat-sized sharing; Balanced is usually the better first attempt for general use; Quality only helps when the source itself was already close to its target ceiling. In every case, keep the original until the downloaded WebM has played to the end and you have confirmed the size, duration, picture, and sound match the destination's requirements.

Mac-Specific Considerations for the WebM Output

WebM is the only output container because browser MediaRecorder support for browser-generated MP4 remains inconsistent across engines. The recorder will try VP9 first, then VP8, then a generic WebM MIME, according to what the browser reports it can produce. The same source and the same preset can therefore produce different bytes in Safari, Chrome, and Firefox, since the encoder choice lives inside the browser rather than inside the tool.

On a Mac, Safari plays WebM since macOS Big Sur, but QuickTime Player does not. For a quick visual check, drag the downloaded file into a new Safari tab or open it with VLC or IINA. If the destination system is a Mac running an older macOS or a tool that expects MP4, the downloaded WebM will not drop in directly; in that case a maintained desktop encoder such as FFmpeg with a reviewed command is the safer route for archival masters, professional delivery specifications, two-pass rate control, fixed keyframe intervals, or deterministic cross-platform output.

For a deeper read on how the MediaRecorder part of this pipeline behaves across browsers, the MDN MediaRecorder page is the reference most of this behaviour is built on. For more context on shrinking files without uploading, the related guide How to Compress Video File Size Without Uploading walks through the same tool from a different angle.