Using FFmpeg for video compression

Mastering Video Compression: How to Optimize for the Web with FFmpeg

Why to compress videos?

Large video files are the enemy of a fast user experience. Whether you are hosting videos on your own server or trying to stay under upload limits, knowing how to use FFmpeg is a superpower for any web professional.

In this guide, we’ll cover how to install FFmpeg on Windows and the most effective commands to get your videos web-ready.


Demo (Video)

Sample ffmpeg testing which converts an 81MB video to 1.8MB without much loss of quality.


1. Installation on Windows (The Easy Way)

The most efficient way to manage FFmpeg on Windows is via Scoop, a command-line installer that handles path variables automatically.

Step 1: Install Scoop

Open PowerShell and run:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
iwr -useb get.scoop.sh | iex

Step 2: Install FFmpeg

Once Scoop is installed, run: scoop install ffmpeg

To verify the installation, type ffmpeg -version. If you see a wall of text with version numbers, you’re ready to go!

2. The Standard Web Export

For a video that plays on every browser (Chrome, Safari, Edge) and device, use the H.264 codec. This command is the “Golden Rule” for web video:


ffmpeg -i input.mp4 -vcodec libx264 -crf 23 -preset medium -acodec aac -movflags +faststart output.mp4

Key Parameters:

3. Advanced Compression Strategies

A. Modern Efficiency (H.265/HEVC) H.265 can provide the same visual quality as H.264 at roughly 50% the file size. ffmpeg -i input.mp4 -vcodec libx265 -crf 28 output.mp4

Note: Best for modern mobile devices and Safari.

B. Downscaling Resolution If your source is 4K but you’re displaying it in a small container, downscale to 1080p or 720p to save massive amounts of bandwidth:

# Scales to 720p height, maintains aspect ratio
ffmpeg -i input.mp4 -vf "scale=-1:720" -c:v libx264 -crf 23 output.mp4

C. Removing Audio for Hero Backgrounds If the video is just a background loop, strip the audio to save extra space: ffmpeg -i input.mp4 -an -vcodec libx264 -crf 23 output.mp4

GoalCommand/FlagRecommendation
Compatibility-vcodec libx264Standard for all browsers
Better Quality-crf [value]Lower (e.g., 18-20)
Smaller File-crf [value]Higher (e.g., 26-30)
Fast Loading-movflags +faststartAlways use for web

Conclusion

Optimizing video doesn’t have to be a guessing game. By using FFmpeg, you ensure your website remains fast and your videos look crisp.