Why Videos Are So Large
Video file size is determined by a simple formula: bitrate × duration. A video encoded at 8 Mbps (megabits per second) produces 60 MB per minute — that is 1 MB per second of footage. At 4K resolution with modern codecs, bitrates climb even higher, and the files become enormous fast.
To put this in perspective, here is what different recording scenarios produce:
| Source | Resolution | Codec | Size per Minute |
|---|---|---|---|
| iPhone (Most Compatible) | 1080p 30fps | H.264 | ~130 MB |
| iPhone (High Efficiency) | 4K 30fps | HEVC | ~170 MB |
| iPhone (4K 60fps) | 4K 60fps | HEVC | ~375 MB |
| iPhone Pro (ProRes) | 4K 30fps | ProRes 422 | ~6,000 MB |
| GoPro HERO | 4K 60fps | HEVC | ~450 MB |
| Screen recording (1080p) | 1080p 30fps | H.264 | ~40–80 MB |
A 10-minute iPhone 4K 60fps video at 375 MB per minute weighs 3.75 GB — too large for email (25 MB limit), most messaging apps (typically 100–200 MB), and slow to upload to social media. The five methods below can reduce that 3.75 GB file to under 500 MB while maintaining quality that is visually indistinguishable from the original.
Method 1 — CRF Quality Control
CRF (Constant Rate Factor) is the single most important setting for controlling video file size. Instead of specifying a target bitrate, CRF tells the encoder how much quality you want. The encoder then automatically decides how many bits each frame needs — complex scenes with lots of motion get more bits, while static scenes get fewer.
The CRF scale for H.264 (libx264) ranges from 0 (lossless, enormous files) to 51 (worst quality, tiny files). In practice, you will only ever use the 18–28 range:
| CRF Value | Quality Level | Approx. Size (1-min 1080p) | Use Case |
|---|---|---|---|
| 18 | Visually lossless | ~120 MB | Archival, master copies |
| 23 | Excellent (default) | ~60 MB | General use, sharing |
| 26 | Good | ~35 MB | Web videos, tutorials |
| 28 | Acceptable | ~25 MB | Social media, email |
| 32 | Low | ~12 MB | Previews, thumbnails |
The FFmpeg command to convert with CRF control:
ffmpeg -i input.mov -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 192k -movflags +faststart output.mp4
Change -crf 23 to any value in the table above. Lower numbers mean better quality and larger files. The relationship between CRF and file size is roughly exponential: each increment of +6 approximately halves the file size.
Quick rule: +6 CRF ≈ halves the file size. Dropping resolution by one step (4K → 1080p) cuts size by ~75%. Combining both can reduce a file by 90% or more.
Method 2 — Slower Encoding Preset
The encoder preset controls how much time FFmpeg spends optimizing each frame. Slower presets find more efficient ways to compress the same visual quality, producing smaller files at the same CRF value. The trade-off is encoding time — but the result is always a smaller file with identical visual quality.
FFmpeg offers presets from ultrafast to veryslow. Here is how they compare:
| Preset | Encoding Speed | File Size (relative) | When to Use |
|---|---|---|---|
ultrafast | 10x | +80% | Real-time streaming only |
fast | 4x | +15% | Quick batch jobs |
medium | 2x | baseline | Default — good balance |
slow | 1x | -15% | Best quality-per-byte |
veryslow | 0.5x | -20% | Final renders, overnight jobs |
The slow preset is the sweet spot. It produces files that are 10–20% smaller than the medium preset at the same CRF value, with no change in visual quality. The only cost is encoding time — roughly 2x longer than medium. For a 5-minute video, that means 3 minutes of encoding instead of 1.5 minutes on typical hardware.
ffmpeg -i input.mov -c:v libx264 -crf 23 -preset slow -c:a aac -b:a 192k -movflags +faststart output.mp4
The veryslow preset squeezes out an additional 5% reduction but takes twice as long as slow. For most people, the diminishing returns make veryslow not worth the wait. The slow preset captures the majority of the compression gains.
Method 3 — Reduce Resolution
Reducing resolution is the single most effective way to cut file size because it directly reduces the number of pixels the encoder must process. Each resolution step roughly follows a 4x relationship in pixel count:
| Resolution | Pixel Count | Relative Size | Reduction from 4K |
|---|---|---|---|
| 4K (3840×2160) | 8.3 million | 100% | — |
| 1080p (1920×1080) | 2.1 million | ~25% | -75% |
| 720p (1280×720) | 0.9 million | ~12% | -88% |
| 480p (854×480) | 0.4 million | ~5% | -95% |
Downscaling from 4K to 1080p reduces file size by approximately 75%. On a smartphone screen, the difference between 4K and 1080p is virtually invisible because the pixel density of modern phone displays already exceeds 1080p at normal viewing distances. Even on a 27-inch desktop monitor, the difference is minimal unless you are pixel-peeping.
The FFmpeg command to downscale to 1080p:
ffmpeg -i input.mov -c:v libx264 -crf 23 -preset slow -vf "scale=1920:-2" -c:a aac -b:a 192k -movflags +faststart output.mp4
The scale=1920:-2 filter sets the width to 1920 pixels and calculates the height automatically to maintain the aspect ratio. The -2 ensures the height is divisible by 2 (required by H.264). For 720p, use scale=1280:-2.
Going from 1080p to 720p cuts another 50% from the file size. On phones, 720p versus 1080p is barely noticeable for most content. This makes 720p an excellent choice when file size is the primary concern — email attachments, messaging apps, or bandwidth-limited scenarios.
Method 4 — Reduce Frame Rate
Frame rate determines how many images per second make up the video. Reducing from 60fps to 30fps halves the temporal data, which translates to a significant file size reduction. The actual savings depend on content complexity, but you can typically expect a 30–40% reduction (not a full 50% because CRF encoding already allocates fewer bits to redundant frames).
ffmpeg -i input.mov -c:v libx264 -crf 23 -preset slow -r 30 -c:a aac -b:a 192k -movflags +faststart output.mp4
The -r 30 flag forces the output to 30 frames per second. When is it safe to reduce frame rate?
- Talking-head videos, tutorials, presentations: 24fps or 30fps is perfectly fine. These types of content have minimal motion, and viewers will not notice the difference.
- Vlogs, travel videos, general footage: 30fps looks natural and smooth. Most TV shows and cinema use 24fps, so 30fps actually exceeds what audiences are accustomed to.
- Gaming, sports, fast action: Keep 60fps. The higher frame rate is needed for smooth motion in fast-paced content. Dropping to 30fps will introduce visible stuttering during quick camera movements or fast-moving objects.
If your source was recorded at 30fps, there is no benefit to reducing further to 24fps — the savings would be minimal (about 20%) and you risk introducing uneven frame timing artifacts called judder.
Method 5 — Use a Modern Codec
H.265 (also known as HEVC) offers approximately 50% better compression than H.264 at the same visual quality. This means a file that would be 60 MB with H.264 becomes approximately 30 MB with H.265, with no perceptible quality difference.
ffmpeg -i input.mov -c:v libx265 -crf 28 -preset slow -tag:v hvc1 -c:a aac -b:a 192k -movflags +faststart output.mp4
Note that the CRF scale is different for H.265. CRF 28 in H.265 produces roughly the same visual quality as CRF 23 in H.264. The -tag:v hvc1 flag is critical — without it, Apple devices (Safari, iPhone, iPad, Mac) will not play the file. This tag marks the stream as HEVC in the way Apple software expects.
| Feature | H.264 (x264) | H.265 (x265) |
|---|---|---|
| Compression efficiency | Baseline | 40–50% smaller |
| Encoding speed | Fast | 5–10x slower |
| Playback support | Universal (99%+) | Modern devices (post-2017) |
| Browser support | All browsers | Safari, Edge, Chrome (partial) |
| Social media | All platforms | All platforms accept it |
| CRF equivalent quality | CRF 23 | CRF 28 |
The trade-off is clear: H.265 produces dramatically smaller files, but encoding takes 5–10x longer and playback compatibility is narrower. For content that will be played on modern devices or uploaded to social media (where the platform re-encodes anyway), H.265 is an excellent choice. For content that must play on any device including older smart TVs, projectors, or embedded players, stick with H.264.
There is also AV1, an even newer codec that matches or exceeds H.265 compression efficiency while being royalty-free. However, AV1 encoding is currently extremely slow (20–50x slower than H.264), making it impractical for most users. As hardware AV1 encoding becomes available in newer GPUs, this will change.
Quick Size Estimation Table
The following table shows estimated file sizes for 1 minute of video across different settings. Use it to estimate how large your output file will be before you start encoding. These are approximations — actual sizes vary based on content complexity (action footage is larger than talking heads).
| Resolution | CRF | Codec | FPS | Est. Size / min |
|---|---|---|---|---|
| 4K (3840×2160) | 18 | H.264 | 30 | ~500 MB |
| 4K (3840×2160) | 23 | H.264 | 30 | ~200 MB |
| 4K (3840×2160) | 28 | H.265 | 30 | ~60 MB |
| 1080p (1920×1080) | 18 | H.264 | 30 | ~120 MB |
| 1080p (1920×1080) | 23 | H.264 | 30 | ~60 MB |
| 1080p (1920×1080) | 28 | H.264 | 30 | ~25 MB |
| 1080p (1920×1080) | 28 | H.265 | 30 | ~15 MB |
| 720p (1280×720) | 23 | H.264 | 30 | ~30 MB |
| 720p (1280×720) | 28 | H.264 | 30 | ~15 MB |
| 720p (1280×720) | 28 | H.265 | 30 | ~8 MB |
| 480p (854×480) | 28 | H.264 | 30 | ~7 MB |
The highlighted row (1080p, CRF 23, H.264, 30fps) is Convertio's default setting — it produces the best balance of quality and file size for the vast majority of use cases. For social media uploads, you can use CRF 28 at 1080p since the platform will re-encode your video anyway.
Audio Compression
Video file size gets all the attention, but audio also contributes. In a typical 1080p video, audio accounts for 5–15% of the total file size. While this sounds minor, the savings add up over longer videos and can make the difference between fitting under a file size limit or not.
| Audio Setting | Bitrate | Size per Minute | Quality |
|---|---|---|---|
| AAC Stereo | 192 kbps | 1.44 MB | Transparent (music-safe) |
| AAC Stereo | 128 kbps | 0.96 MB | Good for speech & ambient |
| AAC Mono | 64 kbps | 0.48 MB | Acceptable for voice-only |
No audio (-an) | 0 kbps | 0 MB | Silent video |
Switching from 192 kbps to 128 kbps saves 480 KB per minute (about 29 MB per hour). For tutorial and screencast videos where audio is primarily speech, 128 kbps AAC is more than sufficient — speech does not benefit from bitrates above 96 kbps.
If the video does not need audio at all (animated GIF replacements, background loops, silent B-roll), remove it entirely:
ffmpeg -i input.mov -c:v libx264 -crf 23 -preset slow -an -movflags +faststart output.mp4
The -an flag strips all audio streams, saving the full audio bitrate from the output file.
Combining Methods for Maximum Reduction
The five methods above are not mutually exclusive. You can combine them in a single FFmpeg command for dramatic file size reductions. Here is a real-world example that applies all five methods simultaneously:
ffmpeg -i input.mov -c:v libx265 -crf 28 -preset slow -tag:v hvc1 -vf "scale=1920:-2" -r 30 -c:a aac -b:a 128k -movflags +faststart output.mp4
This command takes a 4K 60fps ProRes MOV file and produces an H.265 MP4 at 1080p 30fps with CRF 28 and 128 kbps audio. The result is a file that is 95–98% smaller than the original ProRes while looking excellent on any screen. A 6 GB per minute ProRes file becomes roughly 15–20 MB per minute.
For the most common scenario — an iPhone 4K HEVC video that you want to make smaller for sharing — this single command works well:
ffmpeg -i iPhone_video.MOV -c:v libx264 -crf 26 -preset slow -vf "scale=1920:-2" -c:a aac -b:a 128k -movflags +faststart output.mp4
This downscales to 1080p, uses H.264 for maximum compatibility, sets CRF 26 for a good quality-to-size ratio, and uses 128 kbps audio. A typical 1-minute iPhone 4K HEVC video (~170 MB) becomes approximately 25–35 MB — small enough for email, messaging apps, and quick uploads.