How to Compress a Video Without Losing Quality
Turn your size limit into a bitrate first: megabytes × 8 ÷ seconds = megabits per second. Pick the resolution that bitrate can support, then encode with a CRF quality target between 18 and 28 rather than a fixed bitrate. Cutting resolution saves far more than cutting frame rate, and dropping the audio track saves barely 1 MB per minute.
Key takeaways
- File size is decided by one equation: a 60-second clip at 6 Mbps is 45 MB, always.
- A 25 MB email limit on a 60-second clip allows 3.3 Mbps total — comfortable at 1080p, hopeless at 4K.
- Every 6 points of CRF roughly halves or doubles the file; that is about 12% per step.
- Dropping 4K to 1080p removes 75% of the pixels and needs roughly a quarter of the bitrate.
- Halving the frame rate saves only 20–30%, not 50% — frames are mostly stored as differences.
- A 128 kbps audio track costs 0.96 MB per minute. Removing it is almost never the fix.
- What actually makes a video file big?
- What does “without losing quality” really mean?
- Should you use CRF or a target bitrate?
- Resolution, frame rate or bitrate — which do you cut first?
- Worked example: a 150 MB clip into a 25 MB email
- What bitrate does each platform want?
- How to compress a video in your browser, step by step
- What to try when you are still over the limit
- Video compression terms, defined
- Frequently asked questions
- All the tools used in this guide
What actually makes a video file big?
One thing: bitrate. Everything else — resolution, frame rate, codec, colour depth — matters only because it changes the bitrate the video needs in order to look acceptable. Once you know the bitrate and the duration, the file size is arithmetic, not a mystery.
That rearrangement is the useful direction. You rarely start with a bitrate — you start with a limit. Gmail rejects attachments over 25 MB, WhatsApp caps shared video around 16 MB, and a free Discord account stops at 10 MB. Divide backwards from the limit and you know immediately whether the clip is realistic at 4K, needs to drop to 1080p, or has to be trimmed.
Video Bitrate Calculator → Enter a target file size, duration, resolution and codec, and it returns the video and audio bitrates that fit. This is the first tool to open, before you touch any encoder setting.What does “without losing quality” really mean?
Strictly, it is not possible. H.264, H.265, VP9 and AV1 are all lossy codecs: they compress by throwing away information your eye is unlikely to miss — fine texture in shadows, subtle colour shifts, detail in fast motion. The original pixels are gone and cannot be recovered.
What you can achieve is visually lossless: a file where the difference is invisible at normal viewing distance on a normal screen. On the x264 encoder that is roughly CRF 18. True mathematically lossless video encoding does exist, but it typically produces files larger than the camera original, which defeats the purpose.
Should you use CRF or a target bitrate?
These are the two ways to tell an encoder how hard to work, and they answer different questions.
- CRF (constant rate factor) fixes the quality and lets the file size float. A still interview shot becomes tiny; a handheld shot of leaves in the wind stays large. Use it when you care how the video looks.
- Target bitrate fixes the size and lets the quality float. Use it when there is a hard limit you cannot exceed, such as an upload cap.
CRF is the better default because it spends bits where the picture actually needs them. A fixed bitrate wastes capacity on easy scenes and then starves the difficult ones, which is exactly backwards.
The relative sizes below follow from that “six points halves it” relationship. They are estimates, not measurements — the true figure depends on how much motion and texture your footage contains — but they are accurate enough to choose a starting value.
| CRF | How it looks | Size vs CRF 23 | Use it for |
|---|---|---|---|
| 18 | Visually lossless | about 1.8× | Archiving, footage you will edit again |
| 20 | Excellent | about 1.4× | Client delivery, portfolio uploads |
| 23 | Very good — the default | 1.0× (baseline) | General purpose, YouTube uploads |
| 26 | Good; soft in fast motion | about 0.7× | Email attachments, web embeds |
| 29 | Acceptable on a phone screen | about 0.5× | Messaging apps, tight limits |
| 32–35 | Visible blocking and smearing | 0.35× to 0.25× | Last resort only |
Resolution, frame rate or bitrate — which do you cut first?
You have three dials and they are not equally powerful. Resolution is by far the strongest, because pixel count scales with the square of the dimensions: 4K is not twice 1080p, it is four times.
| Dial | Change | Typical size saving | What the viewer notices |
|---|---|---|---|
| Resolution | 2160p → 1080p | about 75% | Nothing on a phone; softer on a large TV |
| Resolution | 1080p → 720p | about 40% | Slightly soft on desktop, invisible on mobile |
| Quality (CRF) | 23 → 29 | about 50% | Blocking in fast motion and dark scenes |
| Frame rate | 60 fps → 30 fps | 20–30% | Motion looks less fluid; obvious in gameplay |
| Audio | 128 kbps → removed | 0.96 MB per minute | Everything, if the audio mattered |
| Duration | trim 10 s from 60 s | about 17% | Nothing, if you trimmed dead air |
Two conclusions follow. First, if the clip is destined for a phone screen, drop the resolution before you touch anything else — a sharply encoded 720p file beats a bit-starved 1080p file at the same size, every time. Second, frame rate is a poor lever: consecutive frames are highly similar, so the encoder already stores most of them as small differences, and removing half of them does not remove half the data. Change resolution with the Video Cropper or check how a target shape maps across sizes with the Aspect Ratio Calculator.
Worked example: a 150 MB clip into a 25 MB email
Take a typical phone recording: 60 seconds, 1080p at 60 fps, roughly 20 Mbps. Check the arithmetic — 20 × 60 ÷ 8 = 150 MB. Gmail will not take it.
Step 1 — convert the limit to a bitrate. 25 MB × 8 ÷ 60 s = 3.33 Mbps total. Reserve 128 kbps for the audio and you have about 3.2 Mbps for video, a 6.25× reduction.
Step 2 — check that bitrate against the resolution. From the chart above, 1080p wants around 8 Mbps and 720p around 5 Mbps for comfortable quality. 3.2 Mbps is below both, so this is a real compression job, not a trim. Two workable routes:
| Route | Settings | Video bitrate | Result | Best when |
|---|---|---|---|---|
| A — keep resolution | 1080p60, CRF 27 | about 3.2 Mbps | Sharp on stills, soft during fast pans | Talking head, screen recording, tripod shot |
| B — step down | 720p30, CRF 24 | about 3.0 Mbps | Clean throughout, lower resolution | Handheld footage, anything watched on a phone |
Route B usually wins, and it surprises people. At 3 Mbps, 720p has roughly 3.3 megabits for 0.92 megapixels; 1080p has the same budget for 2.07 megapixels — less than half the bits per pixel. The 1080p file is nominally higher resolution and visibly worse.
Step 3 — encode and measure. CRF does not guarantee a size, so expect to land near the target rather than on it. If route B produces 29 MB, raise the CRF by 2 (roughly −22%) and re-encode from the original, never from the 29 MB file. If it produces 18 MB, you had room to spare: lower the CRF by 2 and take the quality back.
What bitrate does each platform want?
Two different questions get confused here. Platforms that re-encode your upload (YouTube, Instagram, TikTok) want the highest-quality file you can give them, because your file is the source for their encoder. Platforms that simply transfer your file (email, messaging apps) impose a hard size cap and you must meet it.
| Destination | What it enforces | Bitrate for a 60 s clip | Practical recipe |
|---|---|---|---|
| YouTube | Re-encodes; wants quality | 8 Mbps at 1080p30 | Upload at source resolution, CRF 18–20 |
| Instagram / TikTok | Re-encodes; 9:16 or 4:5 crop | 6–10 Mbps at 1080p | 1080×1920 vertical, CRF 20–23 |
| Email attachment | Hard cap, commonly 25 MB | 3.3 Mbps | 1080p30 CRF 26, or 720p30 CRF 24 |
| Hard cap around 16 MB | 2.1 Mbps | 720p30, CRF 26–28 | |
| Discord, free tier | Hard cap around 10 MB | 1.3 Mbps | 720p30 CRF 28, or 480p30 CRF 24 |
| Website background loop | Load time, not a cap | 1–2 Mbps | 720p, no audio, short loop |
How to compress a video in your browser, step by step
The Video Compressor runs an FFmpeg build compiled to WebAssembly inside the page. Your file is read from disk into browser memory and encoded by your own CPU — it is never uploaded. That is good for privacy and for large files, and it means the first run pauses briefly while the encoder itself downloads.
- Work out your bitrate budget in the Video Bitrate Calculator before opening anything else. Thirty seconds here saves three failed encodes.
- Drag the video onto the drop area. The page reports the original size and duration so you can sanity-check the equation against your own file.
- Set the Quality (CRF) slider. It runs from 18 to 35 and starts at 23. For an email attachment, 26 is the usual landing point; for messaging, 28.
- Start the compression and wait. Encoding happens on your machine, so a minute of 1080p takes noticeably longer than a server would. Keep the tab in the foreground.
- Compare the two previews side by side before downloading. If the size overshoots, raise the CRF by 2 or 3 and run it again from the original file.
What to try when you are still over the limit
If CRF 28 at 720p still will not fit, the video is too long for the limit, not too detailed. Attack the duration and the frame content instead:
- Trim it. Size is linear in duration — cutting 10 seconds from a 60-second clip removes exactly 17%, with no quality cost at all. The Video Splitter cuts by time range, and lets you send two halves separately when one file will never fit.
- Crop it. Removing letterbox bars or dead space at the edges cuts real pixels. Cropping 1920×1080 to 1080×1080 removes 44% of the frame. Use the Video Cropper.
- Drop the frame rate with the FPS Converter. Worth 20–30% for 60 → 30 fps, and screen recordings and slide-based video look fine at 30 or even 24.
- Speed it up. A 2× timelapse of a static scene halves both duration and size. Adjust Video Speed handles the retiming.
- Remove the audio with Remove Audio from Video — about 1 MB per minute, so only when nothing else is left.
- Send a GIF or a still instead. For a three-second reaction clip, a well-made GIF or a single frame may be all that was ever needed — though note that GIF is usually larger than the equivalent MP4. The MP4 to GIF Converter is for compatibility, not compression.
- Split and rejoin. If the recipient can handle two files, split the clip and let them view the parts; Merge Videos puts them back together at the other end.
Video compression terms, defined
- Bitrate
- Data per second of playback, in kbps or Mbps. Multiplied by duration and divided by 8, it gives the file size in bytes.
- CRF (constant rate factor)
- A quality target on a 0–51 scale for x264. Lower is better and larger. The encoder varies the bitrate to hold quality steady.
- Codec
- The compression algorithm: H.264 (universal), H.265/HEVC (about 30–50% smaller, patchier support), VP9 and AV1 (royalty-free, slower to encode).
- Container
- The file wrapper — MP4, MOV, WebM, MKV. It holds the video, audio and subtitle streams but does no compression itself.
- Lossy vs lossless
- Lossy discards information permanently to save space; lossless preserves every pixel and rarely shrinks video meaningfully.
- Visually lossless
- Compressed enough that the difference is invisible under normal viewing conditions. Roughly CRF 18 on x264.
- Keyframe (I-frame)
- A frame stored in full. The frames between it are stored only as differences, which is why halving the frame rate saves much less than half the data.
- Generation loss
- The cumulative damage from re-encoding an already-compressed file. Always compress from the original source.
- faststart
- An MP4 layout that moves the index to the front of the file so playback can begin before the download finishes. Standard for web video.
Frequently asked questions
Can you compress a video without losing any quality at all?
Not with the codecs in common use. H.264, H.265, VP9 and AV1 are lossy by design. What you can reach is visually lossless — around CRF 18 on x264 — where the difference is invisible at normal viewing distance. True lossless encoding exists but usually produces a file larger than the original.
What file size will my video be?
Megabytes = Mbps × seconds ÷ 8. A 60-second clip at 6 Mbps is 45 MB. Resolution, frame rate and codec matter only because they change the bitrate the picture needs.
Is CRF or a target bitrate better for compression?
CRF when you care how it looks, target bitrate when you must hit an exact size. CRF holds quality constant and lets size float, so easy scenes get small and difficult scenes stay clean. A fixed bitrate does the reverse.
What CRF value should I use?
18 is visually lossless, 23 is the x264 default and a safe general choice, 26–28 is normal for web and messaging. Past 28 you start to see blocking in motion. Every 6 points roughly halves or doubles the file, about 12% per step.
Should I lower the resolution or the bitrate first?
Resolution, if the clip will be watched on a phone. 4K to 1080p removes 75% of the pixels and roughly three quarters of the bitrate requirement. Starving a full-resolution file of bits produces blocking, which looks worse than a clean lower-resolution encode of the same size.
Does lowering the frame rate make the file much smaller?
Less than you would expect — 20 to 30% for 60 fps down to 30 fps, not 50%. Consecutive frames are nearly identical and the encoder already stores most of them as differences. It also changes how motion feels, so adjust it last.
How do I get a video under 25 MB for email?
For 60 seconds, 25 MB allows about 3.3 Mbps in total. Leave 128 kbps for audio and you have roughly 3.2 Mbps of video — comfortable at 720p30, tight at 1080p. In practice, 720p30 at CRF 24 or 1080p30 at CRF 26 lands close to the target.
Does compressing a video in the browser upload my file anywhere?
Not with a WebAssembly tool. The Video Compressor runs FFmpeg compiled to WebAssembly inside the page, so the file is read into browser memory and never leaves your device. The trade-off is speed, because your own CPU does the encoding.
All the tools used in this guide
Authoritative sources
- Recommended upload encoding settings — YouTube Help
- H.264 encoding guide and the CRF scale — FFmpeg Wiki
- Advanced Video Coding (H.264) — Wikipedia
- Bit rate — Wikipedia
- Data compression, lossy and lossless — Wikipedia
Bitrates, CRF values and file sizes in this guide are worked examples used to demonstrate the method; real results vary with the amount of motion and detail in your footage. Platform size limits and upload specifications change without notice and may depend on your subscription tier — confirm current values with the service before an important upload. This article is educational and does not constitute technical advice for any specific production workflow.