FFmpeg is the open source multimedia framework that sits underneath most video software, decoding, encoding, transcoding, filtering and streaming almost every format ever made from a command line, free under the GPL.
It decodes, encodes, transcodes, muxes, demuxes, filters, streams and plays back virtually every audio and video format ever created.
Most of the video software on your PC already runs it in the background, including HandBrake and yt-dlp.
Installing it yourself gives you the same engine those tools rely on, with nothing sitting in front of it.
There is no setup wizard and no window. You get three small programs - ffmpeg.exe for processing, ffprobe.exe for inspecting files and ffplay.exe for playback - and you drive them from a command prompt. Version 9.0.1 is the current stable release.
Which FFmpeg Build Should You Download?
The FFmpeg download page lists builds from the two compilers the FFmpeg project itself points people to: GyanD and BtbN.
Both compile 64-bit Windows binaries from the same official source, so the difference is not quality. It comes down to what is bundled, how the build is licensed, and how often it is rebuilt.
Neither project ships a 32-bit Windows build, so a 64-bit version of Windows is required either way.
GyanD Builds, the Default Choice for Most People
GyanD publishes two variants. Essentials carries the commonly used libraries and covers nearly every conversion, encoding and streaming job people actually do. Full adds most of the remaining optional libraries, including AviSynth+ input and the wider set of hardware and image codecs.
Each variant then comes in two flavours. The release builds are cut from the current stable branch, while the git builds are built from the development branch and carry features that have not reached a numbered release yet.
Worth knowing: GyanD actually recommends the git builds over the release builds, on the grounds that FFmpeg releases exist for the convenience of Linux distributions and package managers rather than as a stability milestone.
All GyanD builds are static and licensed as GPLv3, so there is no LGPL option from this compiler. Both variants ship as .7z and .zip archives - take the .7z if you have 7-Zip installed, otherwise use the .zip.
BtbN Builds, for Automation and Commercial Use
BtbN rebuilds FFmpeg daily and publishes under stable, predictable filenames, which is exactly what a script or a CI pipeline wants. Two licensing variants are on offer, and the difference between them is not cosmetic.
- GPL - includes the GPL-licensed encoders, x264 and x265 among them, giving you the widest encoding coverage for personal and open source work.
- LGPL - drops the GPL-only libraries, which in practice means no x264 and no x265, in exchange for being safe to bundle inside closed-source software.
If you are shipping FFmpeg inside a product you sell, the LGPL build is the one your lawyer will ask for. If you are converting your own files, the GPL build is strictly more capable.
Which Windows Versions Still Work
The two projects do not agree here, so it is worth being precise. GyanD states Windows 7 and above for everything it publishes, with no split between essentials and full.
BtbN targets Windows 7 and newer only when the UCRT update is installed, and formally supports nothing older than Windows 10 22H2. Older systems may still run those builds, but they are not covered.
On Windows 7 or 8, take a GyanD release essentials build and skip BtbN entirely.
Quick Selection Guide
| What you need | Build to pick | Why |
|---|---|---|
| Everyday converting and encoding | GyanD release essentials | Smallest download, covers almost everything |
| Rare codecs, extra filters, AviSynth+ input | GyanD release full | Adds the optional libraries essentials leaves out |
| New features as soon as they land | GyanD git essentials or full | Built from the development branch, ahead of any release |
| Scripts, scheduled jobs, CI pipelines | BtbN GPL | Daily rebuilds under filenames that never change |
| Bundling inside software you sell | BtbN LGPL | No GPL libraries, so no x264 and no x265 |
| Windows 7 or Windows 8 | GyanD release essentials | The only builds whose vendor still states Windows 7 support |
| Staying on the older 8.x branch | GyanD 8.1.2 build | Last 8.x build kept on the download page |
What FFmpeg Is Used For
FFmpeg covers the whole media pipeline, from the source file to the finished output.
Conversion and transcoding. Almost any container and codec combination works, whether that is MP4 to MKV, AVI to HEVC or MOV to WebM, in a single command.
If you would rather click than type, HandBrake and Shutter Encoder both wrap the same engine in a drag-and-drop interface.
Encoding with external encoders. FFmpeg hands off to standalone encoders such as x265 for high-quality HEVC and SVT-AV1 for AV1.
It can also push the work onto your graphics card instead, through NVEnc on NVIDIA hardware, which trades a little quality for a large jump in speed.
FastFlix and StaxRip put a front end on that same setup if the command line is not for you.
Filtering and frameserving. For scripted filtering, AviSynth+ can serve processed frames straight into FFmpeg for the final encode. It is the usual answer for deinterlacing, denoising and resizing work that needs frame-level control.
Downloads and stream merging. yt-dlp calls FFmpeg automatically whenever it has to join a separate video and audio stream into one file. Without FFmpeg on your PATH, it simply leaves you the pieces.
Container work without re-encoding. To add subtitles, strip an audio track or join clips losslessly, pair FFmpeg with MKVToolNix. For trimming with a timeline in front of you, LosslessCut drives FFmpeg under the hood.
Recording, streaming and serving. OBS Studio uses FFmpeg in its recording and output pipelines, and Jellyfin Server uses it for every transcode it sends to a client.
For quick cuts and format changes after a recording session, AviDemux is a lighter FFmpeg-backed editor. Older AVI projects are still VirtualDub2 territory.
How to Install FFmpeg on Windows
- Download your chosen build and extract the archive somewhere permanent, such as C:\ffmpeg.
- Add the bin subfolder to your PATH: open System Properties, then Advanced, then Environment Variables, edit Path under System variables and add C:\ffmpeg\bin.
- Open a new Command Prompt and run ffmpeg -version. If it prints a version number, you are done.
Do the PATH step. Once FFmpeg is on your PATH, every tool that depends on it finds it automatically - yt-dlp, FastFlix, StaxRip and the rest - with nothing else to configure.
Who Should Look Elsewhere
The tell is simple: if you opened this page hoping for a window with an Open button, FFmpeg on its own will frustrate you. There is no interface to learn, only options to look up.
For a queue of files and a quality slider, start with HandBrake instead. For a single audio file you need converting right now, the site's online audio converter does it in the browser with nothing to install.
If you are not sure what your file even contains, the Codec Finder will tell you before you go any further. Our guide on when a command line beats a GUI is worth a read if you are still deciding.
What Changed in FFmpeg 9.0
- 9.0.1, 12 August 2026 - point release on the 9.0 branch, bug and security fixes only, no new features.
- 9.0 "Lei", 4 August 2026 - native animated WebP decoding at last, TLS certificate verification enabled by default, a rewritten swscale with a Vulkan backend, Dolby Vision Profile 7 layer splitting and an ONNX Runtime backend for the DNN filters.
- 9.0 removals - the deprecated -vsync, -top and -filter_complex_script options are gone, along with the OpenMAX encoders and the NPP filters.
- 8.1.2 "Hoare", 17 June 2026 - maintenance release on the 8.1 branch.
- 8.0.3 "Huffman", 18 June 2026 - maintenance release on the long-lived 8.0 branch.
Check your scripts before upgrading. Version 9.0 removed -vsync in favour of -fps_mode and now verifies TLS certificates by default, so an old batch file that talks to a server with a broken certificate will stop working rather than warn you.
Quick questions
Is FFmpeg really free?
Yes. FFmpeg is open source with no paid tier, no trial and no feature you have to unlock, and the Windows builds here are licensed as GPLv3 or LGPL depending on which one you take.
Which file should I download if I just want to convert videos?
The GyanD release essentials .zip. It is the smallest download, it handles the overwhelming majority of conversion work, and it needs no extra software to open.
Do I need to install FFmpeg?
There is no installer. You extract the archive, add the bin folder to your PATH, and that is the whole process.
What is the difference between the git and release builds?
Release builds come from the current stable branch and change slowly. Git builds come from the development branch, so they get new features first and are the ones the compiler himself recommends.
Does FFmpeg still work on Windows 7?
GyanD states Windows 7 and above for its builds, so take one of those. BtbN only guarantees Windows 10 22H2 and later, so it is the wrong choice on an older machine.
Still weighing it against a paid encoder? Our comparison of FFmpeg against Adobe Media Encoder covers where each one wins, and StaxRip against HandBrake does the same for the two most popular front ends.
Download FFmpeg 9.0.1 and see how it handles your files, or tell us how you got on if you have used it before.
@echo off
setlocal enabledelayedexpansion
:: Drag-and-drop batch script for FFmpeg
:: Converts any video to Telegram-ready .mp4
if "%~1"=="" (
echo Drag and drop a video file onto this script to convert it.
pause
exit /b
)
set "input=%~1"
set "name=%~n1"
set "ext=%~x1"
set "dir=%~dp1"
set "output=%dir%%name%_telegram.mp4"
echo Converting "%input%" to "%output%"...
ffmpeg -i "%input%" -c:v libx264 -preset fast -crf 23 -c:a aac -b:a 128k -movflags +faststart "%output%"
echo Done!
pause
