Compress MP4 Online

Reduce MP4 file size for social uploads, creator workflows, course videos, email attachments, and storage. You can also compress MOV, WebM, and MKV, then fine-tune H.264/H.265, CRF, resolution, frame rate, and audio bitrate.

Compress your video

Choose a file
or drag and drop

Sign in to run this tool — 100 free credits on signup.

Common ways people compress video

Short-form creators

Compress video for TikTok, Instagram, or YouTube uploads

Shrink large phone exports before posting, sending to an editor, or archiving source clips without installing desktop editing software.

Educators and coaches

Reduce course and tutorial video file size

Downscale long screen recordings or lesson videos to 1080p or 720p so they upload faster to LMS platforms, communities, and email.

Developers

Automate user-uploaded video compression

Use the same FFmpeg compression command through the API for SaaS apps, UGC platforms, content moderation queues, and batch processing.

FFmpeg flags used by this tool

Quick reference for what each parameter actually does.

-c:v libx264 / libx265 / libvpx-vp9
Video encoder. H.264 is universal for MP4, H.265 is 30-40% smaller at the same quality (slower), VP9 is web-friendly royalty-free.
-crf
Quality knob, 0–51. Lower = better quality and larger file. Sweet spot 18–28; below 18 is visually lossless, above 32 starts showing artifacts.
-preset
libx264/libx265 speed-vs-size tradeoff: ultrafast → fast → medium → slow → veryslow. Slower presets produce smaller files at the cost of CPU time.
-vf scale=-2:H
Downscale to height H, keep aspect ratio, round width to even (codecs require). One of the most effective size-reduction tools.
-vf fps=N
Reduce frame rate. Going from 60 to 30 fps roughly halves video bitrate at the same CRF.
-c:a aac / libopus
AAC for MP4 (universal), Opus for WebM (best speech quality at low bitrates).

How it works

  1. 01

    Upload an MP4 or paste a URL

    Drop an MP4, MOV, WebM, MKV, or paste a public video link.

  2. 02

    Pick a preset

    Balanced fits most cases. Smallest targets lower file size; Web optimized creates VP9/WebM; Advanced exposes CRF, resolution, fps, and bitrate.

  3. 03

    Process online

    Your video is compressed in the cloud with FFmpeg without installing desktop software.

  4. 04

    Download the result

    Get a temporary download link as soon as it's done. Files auto-expire after 7 days.

FAQ

Preset vs Advanced — which should I use?

Start with a preset. Balanced is right for most web video; Smallest crushes file size with H.265 + 720p; High quality is near-lossless for archives; Web optimized produces WebM/VP9 for HTML5 video; Fastest is for when you don't want to wait. Open Advanced only if you need a specific CRF, resolution or fps.

How much smaller will my video be?

It depends on the source file, codec, resolution, motion, and quality preset. Large camera uploads usually shrink much more than files that were already heavily compressed by social apps.

How do I compress an MP4 without losing too much quality?

Use H.264 with CRF 23 as a safe default, or CRF 18-20 when quality matters more than file size. If the file is still too large, downscale to 1080p or 720p before raising CRF too far.

What is the best setting to reduce video file size?

The biggest wins usually come from lowering resolution, using a modern codec, and choosing a reasonable CRF. For many web uploads, H.264 CRF 23 at 1080p or 720p is a practical starting point.

Should I use H.264 or H.265 for smaller files?

H.265 usually creates smaller files at the same visual quality, but encoding is slower and playback support is less universal. Use H.264 for broad compatibility; use H.265 when file size matters and your audience can play it.

H.264 vs H.265 vs VP9 — what's the difference?

H.264 plays everywhere (default safe choice). H.265 produces 30-40% smaller files at the same visual quality but encoding is 3-5x slower and playback isn't universal. VP9 is royalty-free, web-friendly, and supported in Chrome / Firefox / Edge — great for HTML5 video, not for sharing with non-tech users.

What does CRF mean?

Constant Rate Factor. The encoder targets a consistent visual quality, letting bitrate vary as needed. Lower CRF = higher quality, larger file. CRF 18 is visually lossless, 23 is default 'looks good', 28 is acceptable for social media, 32+ shows artifacts. H.265 CRF runs ~5 higher than H.264 for equivalent quality.

What if my source is smaller than the resolution I picked?

We won't upscale. If your source is 480p and you pick 1080p, the output stays at 480p — upscaling would make the file larger without adding real detail. Pick a resolution at or below your source for actual size reduction.

Can I reduce bitrate instead of changing CRF?

CRF is usually better for one-off compression because it targets visual quality. Fixed bitrate is useful when you must hit a streaming or upload limit exactly, but it can waste bits on simple scenes and starve complex scenes.

Is there a file size or duration limit?

Inputs up to 5 GB and 4 hours are supported. Longer or larger files should call the API directly — no UI cap there.

Is it really free?

Sign up gets you 100 credits. A typical compress costs 1–10 credits depending on length. After that, top up — no subscription.

Can I use this in code instead?

Yes — every tool here is a thin wrapper over our HTTP API. See the docs for curl / Node / Python examples.

Related video tools

Need to compress MP4 in code?

This online MP4 compressor is a wrapper around the FFHub REST API. Run the same FFmpeg compression command from your backend, queue, or batch workflow.

View API docs
curl -X POST https://api.ffhub.io/v1/tasks \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d {
    "command": "-i https://you.com/in.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k out.mp4"
  }
Compress MP4 Online — Reduce Video File Size | FFHub