Discord rejects uploads above 10MB on free accounts, so any clip longer than a few seconds typically has to be re-encoded — not just trimmed — before it can be sent in chat or a server.

The 10MB ceiling applies to the file as uploaded, not the source length, so a 30-second screen recording or a one-minute phone clip almost always exceeds it. Discord does not offer an in-chat compressor, so the only way to make a file fit is to re-record it at lower resolution, lower frame rate, and lower bitrate in a way that shrinks the byte count rather than the duration. Lizely's Video Compressor is built for exactly this job: it re-encodes a single browser-decodable clip locally — nothing leaves the tab — and finishes by reporting the exact byte change between the source and the WebM it hands you. Because every Discord clip has to be re-encoded anyway, the goal is to pick the preset that lands the file at or below 10MB and then verify the result before sharing, since WebM playback in Discord varies by client.

compress video for discord 10mb
compress video for discord 10mb

Why Discord caps uploads at 10MB

Discord's free tier caps file uploads at 10MB per attachment in most regions; subscribers get larger ceilings, but the free cap is what most users hit first. The cap applies to the uploaded byte count, not the duration, and Discord does not re-encode on the way in. A phone video at 1080p is commonly tens of megabytes per minute, and a 4K clip can easily exceed 100MB in a few seconds of footage. Trimming will not help, because the per-frame byte cost stays roughly the same and Discord still measures the whole file. The two knobs that actually move the needle are resolution (smaller width equals fewer pixels per frame) and bitrate (lower target equals fewer bytes per pixel per second), with frame rate as a secondary lever. That is what compression means in this context: re-recording the video at a tighter budget so the final file fits Discord's envelope.

Background animations and screen recordings often compress far more than live-action footage because they have less motion and less noise. Live-action clips with camera shake, grain, or rapid cuts encode poorly — that does not mean the tool is broken, it means motion-heavy content resists aggressive compression regardless of the software. If the first preset does not land under 10MB, the next step is to try a tighter preset (Small) rather than to assume the tool failed.

What the Video Compressor actually does

Video Compressor runs entirely in the current tab. The page reads the selected file, plays it back through an HTMLMediaElement, draws each frame onto an opaque Canvas sized to the chosen preset, and records that Canvas stream with the first WebM-capable codec the browser reports — VP9 if available, otherwise VP8, otherwise generic WebM, as documented in the W3C MediaStream Recording specification and on the MDN MediaRecorder reference. When the source finishes playing, the tool reports the actual output dimensions, the input and output byte counts, and the signed percentage change between them; it does not guess at savings.

The output is always WebM. That is intentional: browser support for generating MP4 with MediaRecorder remains inconsistent across Chromium, Firefox, and Safari, so WebM is the safer cross-browser target. Discord accepts WebM uploads, including chat attachments, so the format swap is usually invisible to the recipient. If a recipient demands MP4, the cleanest path is to run FFmpeg locally with a reviewed command rather than to assume any browser-side tool will hand you an MP4 that plays everywhere.

The tool enforces a hard set of limits before it starts: the source must decode (codec installed in the current browser), the byte size must be at most 500 MiB, duration at most five minutes, each side at most 4096 pixels, and the decoded area at most 3840 × 2160. Any failure produces an error message and no download — nothing is silently truncated. Because the encoder listens to the Canvas stream in real time, a two-minute source takes roughly two minutes to process. The page reports progress against source playback time so it is clear whether the job is still working or has stalled.

Presets that fit a 10MB Discord target

Three presets determine the output ceiling. They are explicit product choices, not universal optima, and they trade differently against file size. The table below summarizes what each preset actually does, based on the disclosed tool parameters:

PresetWidth limitFrame rateBest Discord use case
Small640 px24 fpsLonger clips and motion-heavy footage where fitting 10MB matters more than visible detail
Balanced1280 px30 fpsShort clips (under roughly 20 s) where HD-looking playback still leaves headroom under 10MB
Quality1920 px30 fpsBrief clips where Discord's 10MB is not the binding constraint and viewers want maximum detail

None of the presets enlarge the source; each one preserves the aspect ratio and rounds width and height down to even pixel values for broader codec compatibility. Each preset applies a bounded bits-per-pixel heuristic to choose a recorder bitrate, clamped from 180 kbps through 8 Mbps. For a 10MB Discord target, start with Small. If the output is well under 10MB and the clip is short, retry with Balanced to recover visible sharpness. Switching presets mid-job invalidates the previous recording and frees the temporary object URL.

How to compress a clip for Discord in the browser

  1. Confirm the source fits the tool's envelope: at most 500 MiB, five minutes, 3840 × 2160 in decoded area, and decodable by the current browser. A valid .mp4 or .mov extension is not enough on its own; if the codec is missing, the page will refuse the file before any re-encoding begins.
  2. Open Video Compressor and pick the file from your device. The page reads the bytes locally; no upload is performed to any server.
  3. Pick a preset. For a 10MB Discord target, choose Small. Switch to Balanced only if the clip is short enough that you have visible headroom under the cap.
  4. Start the compression. The source plays through once in real time while the Canvas records it. Keep the tab in the foreground, since heavy background throttling can interrupt playback.
  5. Wait for the page to report the actual output dimensions, input bytes, output bytes, and the signed percentage change. The percentage is computed only from those two Blob sizes.
  6. Click the download link to save the generated WebM to your device.
  7. Play the downloaded WebM from start to finish before deleting the source. Verify picture, sound, and total duration; audio is preserved only when the browser exposes a capturable audio track through captureStream.
  8. If the output is still over 10MB, do not re-run the same preset expecting a different result — switch to Small, or trim the file first and re-encode the trimmed segment.

Discord-specific checklist before posting

After the file lands on disk, treat it as unverified until it has been watched through and confirmed against Discord's constraints. The most common slips when sharing in Discord are silent ones that the chat client will not catch: a slightly oversized file that just barely exceeds 10MB and silently fails to upload, a WebM whose first frame or last frame fails to decode in a recipient's client, or a clip with video but no audio because the browser's captureStream did not expose a track.

Open the downloaded WebM in the same player you would normally use. Verify duration by scrubbing to the end. Send a copy to yourself in a DM first if the destination matters — Discord's 10MB cap is enforced server-side, so a 10.1MB file will be rejected even if your local viewer opens it. If the result is over the cap, switch presets or trim first, rather than re-running the same preset on the off-chance of a different size. The tool reports actual bytes, not estimates, so two runs on the same preset typically produce files of similar size.

The same approach that fits Discord will work for any other messenger with a 10MB-style attachment limit. For uploads that need archival fidelity, exact codec profiles, or subtitle preservation, a maintained desktop encoder like FFmpeg is the safer choice — the browser tool is optimized for fast local re-encodes, not certified delivery specifications. Keep the original until the recipient has confirmed the clip plays in their client.