FFmpeg Cookbook
JA

Discord Video Compressor

Calculate compression settings from duration and a custom MB target, then inspect the actual size, playback and conversion report.

Fully local processing — your file never leaves the browser
Choose a video MP4 / MOV / MKV / WebM / AVI, up to 500 MB

1 MB = 1,000,000 bytes. Presets are not service or plan limits. Check your upload screen. Entering a shorter duration does not trim the video.

Before sharing

Use the limit shown in your upload screen. Trim unneeded footage first. Connection, permissions and playback format can also prevent sharing.

The calculation budgets 95% of the target for video and audio. An oversized output is retried once and any remaining excess is reported.

Re-encoding changes quality. Check small text, motion and audio, and keep the original. Automatic tag and chapter copying is disabled, but this does not conceal personal information in the picture or sound.

Measured comparison: file size and quality from the same clip

Equivalent FFmpeg command

CLI command for your current settings. Updates live as you change controls.

Pick a file and adjust settings — the command appears here.

What changes when you compress a video?

One 10-second clip, encoded with three settings. Compare file sizes and a frame at three seconds.

Source 30.70 MB7.25 MB
Source animation at three seconds The same frame after compression at the selected setting Original Compressed
Method and raw data

Measured 2026-09-10. 1080p, 30 fps, 10 seconds; source has no audio. Windows / FFmpeg 8.1 / H.264 / fast preset. One run per setting; no phone or browser speed measurements. Frames are resized to 960px and cannot show full-resolution detail or motion. This is lossy compression.

Measurements, commands and SHA-256 (JSON) · Source clip

Big Buck Bunny © Blender Foundation · CC BY 3.0 · Encoded and resized frames

Popular uses
Discord free and Nitro size targetsGame clip sharing10MB/25MB long-clip tuning

What this tool does

  • Custom targets from 0.1 to 500 MB
  • Choose a resolution limit and keep or remove audio
  • One oversize retry with an explicit final size result
  • Selected media and conversion reports are not uploaded

How to use

  1. 1

    Check the limit

    Check the actual limit in Discord. Presets are not a current pricing-plan table.

  2. 2

    Choose the file and settings

    Confirm the detected duration, target, resolution and audio setting.

  3. 3

    Inspect the result

    Check size, small text, motion and audio before downloading and sharing.

What each setting means

Target MB and duration
1 MB = 1,000,000 bytes. Duration is used for budgeting, not trimming.
Match the bitrate
Maximum height is 480p below 400 kbps, 720p below 1200 kbps, otherwise 1080p. Sources are not upscaled.
Audio
When retained, audio targets 128 kbps, or 64 kbps above 300 seconds. Silent sources remain silent.

Recommended settings

Sharing small text
Original resolution; trim unnecessary time
Check readability in the preview. Trimming may work better than shrinking text.
A short clip with a size cap
A target below the actual cap
Bitrate budgeting is approximate; use actual output bytes for the final check.

Common pitfalls

Symptom: Output exceeds target

Cause: Rate-control variation, overhead, or an incorrect duration.

Fix: Check duration. After the single retry, trim or adjust the target if still over.

Symptom: Within target but cannot send

Cause: Possible destination limits, permissions, network or service issues.

Fix: Read the Discord error and test whether another small file has the same problem.

Equivalent FFmpeg commands

Reference commands you can run on the desktop FFmpeg CLI.

Historical log: 2026-09-11, 1 successful example executions and 0 excluded (desktop FFmpeg 8.1, fixtures). This log does not verify later edits, browser controls or visual quality.

Bitrate example for 10 MB and 60 seconds
ffmpeg -i input.mp4 -map 0:v:0 -map 0:a:0? -c:v libx264 -b:v 1138k -maxrate 1252k -bufsize 2276k -preset fast -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart output.mp4
A calculation: floor(10,000,000 × 0.95 × 8 / 60 / 1000) minus 128 kbps for audio. This is not a measured output size.

Browser support & limits

  • Inputs up to 500 MB and 7200 seconds; some devices fail on smaller files.
  • MP4 / H.264 / AAC output. Proper HDR tone mapping, alpha and retaining every audio track are out of scope.
  • Program downloads, ads and analytics may use the network separately from selected media.

Privacy

This tool runs ffmpeg.wasm directly in your browser. Files never leave your device — everything runs locally. Read the privacy policy →

Frequently asked questions

Is the selected size guaranteed?

No. Output can still exceed the target after one retry. The final size badge uses actual output bytes.

Will it finish on a phone?

That depends on memory, the source and browser. The 500 MB input limit is not a completion guarantee. Try a short source first.

What is in the report?

Input/output bytes, entered duration, target size, commands, exit codes and elapsed time. It does not verify quality or Discord upload acceptance.

Does this also fix variable frame rate?

This tool does not explicitly request CFR. Investigate VFR or sync issues separately with the dedicated tools.

Related tools

Related FFmpeg recipes

In depth: context unique to this tool

A budget is not a measurement

The tool checks actual output bytes after budgeting. If it retries, that command and result are also recorded. You can download the local report and compare settings on your own source.

Size is not a quality metric. Check readable subtitles and UI text, fast motion and speech. A file that fits but loses important information has not met the sharing goal.

What to do next