FFmpeg has no official Windows installer — no .msi, no “Download for Windows” button that drops an .exe into your Start menu. Instead you download a pre-built ZIP from a trusted third-party builder, extract it, and tell Windows where to find it by adding one folder to your PATH. That last step is where most people get stuck: the download works, but typing ffmpeg in a new terminal returns “‘ffmpeg’ is not recognized as an internal or external command.” This guide walks through the whole process on Windows 10 and 11 — the right build to download, exactly which folder goes on PATH, how to verify it, the errors that trip people up, and a few commands to try once it works.
Quick answer: FFmpeg has no Windows installer. (1) Download a build — easiest is winget install -e --id Gyan.FFmpeg, or grab a ZIP from gyan.dev (release-full) or BtbN (ffmpeg-master-latest-win64-gpl.zip). (2) Extract it, e.g. to C:\ffmpeg. (3) Add the inner bin folder (the one holding ffmpeg.exe) to your PATH environment variable. (4) Open a new terminal and run ffmpeg -version. The current stable release is the 8.1 series (“Hoare”); always check the build page for the exact latest number.
Jump to a section
- Which FFmpeg build should I download?
- Option A: install with winget (fastest)
- Option B: manual ZIP install, step by step
- Adding FFmpeg to your PATH (the step everyone misses)
- Verify the installation
- Common errors and fixes
- A few commands to try first
- Prefer not to install anything?
- FAQ
Which FFmpeg build should I download?
The official project at ffmpeg.org/download.html does not host Windows binaries itself. Under Windows EXE Files it points to two trusted community builders, and both are good choices:
| Source | What you get | Format | Best for |
|---|---|---|---|
| gyan.dev | release-essentials, release-full, release-full-shared, git-full | .7z and .zip | Most users — pick release-full |
| BtbN | ffmpeg-master-latest-win64-gpl.zip (static) plus gpl-shared | .zip | Daily/bleeding-edge master builds |
A few terms worth knowing before you click:
- essentials vs. full (gyan.dev): essentials covers everyday encoding (H.264, H.265, AAC, MP3, etc.); full adds extra libraries you may never use but won’t hurt to have. The full build is the safe default.
- static vs. shared: a static build is self-contained —
ffmpeg.exeworks on its own. A shared build splits code into separate.dllfiles in the same folder, so you must keep them together. For a command-line install, prefer a static build (gyan’s regular release builds and BtbN’s plain...win64-gpl.zipare static). - release vs. git/master: release builds track a stable, versioned FFmpeg; git/master (BtbN’s
master-latest) rebuilds daily from the development branch. Unless you need a brand-new feature, use a release build.
The current stable line is the FFmpeg 8.1 series (codename “Hoare”), cut from master on 2026-03-08. As of mid-June 2026 the source release is 8.1.2 and the gyan.dev pre-built was at 8.1.1 — pre-built binaries lag the source release by a few days, which is normal. FFmpeg version numbers move fast, so treat the exact number as “whatever the build page currently shows” rather than memorizing one.
Option A: install with winget (fastest)
If you’re on Windows 10 (version 1809 or newer) or Windows 11, the Windows Package Manager (winget, built into modern Windows) handles the download and most of the setup in one command. Open PowerShell or Command Prompt and run:
This pulls the gyan.dev full build. The -e flag forces an exact ID match so you get the right package.
Two caveats:
- After install, close and reopen your terminal so it picks up the new
PATH. Ifffmpegstill isn’t recognized, sign out and back in (or reboot). - The winget package has historically had occasional
PATH-setup hiccups (tracked in the winget-pkgs issue tracker). Ifffmpeg -versiondoesn’t work after reopening the terminal, fall back to the manual method below and setPATHyourself — it’s the more reliable path.
To remove it later: winget uninstall Gyan.FFmpeg.
Option B: manual ZIP install, step by step
This is the universal method — it works on any Windows version and gives you full control over where FFmpeg lives.
Step 1 — Download a build. Go to gyan.dev/ffmpeg/builds and download ffmpeg-release-full.7z (or the .zip if you don’t have a 7-Zip-capable extractor). The .7z is much smaller; the .zip is larger but opens with Windows’ built-in extractor.
Step 2 — Extract it. If you downloaded a .7z, install 7-Zip first, then right-click the file and choose 7-Zip → Extract to "ffmpeg-…". For a .zip, right-click and choose Extract All. You’ll get a folder named something like ffmpeg-8.1.1-full_build.
Step 3 — Move it somewhere permanent. Move the extracted folder to a stable location and ideally rename it for simplicity, for example C:\ffmpeg. Don’t leave it in Downloads — if you ever clean that folder out, your PATH entry breaks. Inside you’ll find a bin subfolder containing the three executables:
The folder you need to remember is the one holding ffmpeg.exe — in this example, C:\ffmpeg\bin.
Adding FFmpeg to your PATH (the step everyone misses)
PATH is the list of folders Windows searches when you type a command. Adding C:\ffmpeg\bin to it lets you run ffmpeg from any folder, in any terminal.
- Press Win + S, type environment, and open Edit the system environment variables. (Equivalent route: Win + X → System → Advanced system settings.)
- In the System Properties window, click Environment Variables… near the bottom.
- Under System variables (for all users) or User variables (just you — no admin rights needed), select Path and click Edit….
- Click New, paste the full path to the
binfolder —C:\ffmpeg\bin— and click OK on every window to save.
A couple of things that catch people:
- Add the
binfolder, not the parent folder. PointingPATHatC:\ffmpeg(without\bin) is the single most common mistake — the.exefiles live one level down. - Open a new terminal afterward. Already-open windows keep their old
PATH. Changes only apply to terminals opened after you save. If it still doesn’t work, sign out and back in, or reboot.
System vs. User variables: a User PATH entry only needs your own account and no admin rights; a System entry applies to every user but requires administrator privileges. Either works for one person on one PC.
Verify the installation
Open a new Command Prompt or PowerShell and run:
A correct install prints something like ffmpeg version 8.1.1 ... built with gcc ... followed by a list of compiled-in libraries. You can also confirm the companion tools:
If you see version banners, FFmpeg is installed and on your PATH. You’re done.
Common errors and fixes
| Symptom | Cause | Fix |
|---|---|---|
'ffmpeg' is not recognized as an internal or external command | bin folder isn’t on PATH, or the terminal predates your PATH change | Re-check that the exact ...\bin path is in PATH; open a brand-new terminal; sign out/in if needed |
| Worked yesterday, broken today | You moved or deleted the FFmpeg folder it points to | Move it back, or update the PATH entry to the new location |
PATH points at C:\ffmpeg and still fails | You added the parent folder, not bin | Edit the entry to end in \bin |
| Some DLL is missing / app won’t start | You downloaded a shared build and separated the .dll files | Keep all files together, or re-download a static build |
Older Windows: api-ms-win-crt-* or UCRT error | BtbN builds need the Universal C Runtime | Install the latest Microsoft Visual C++ runtime / UCRT update, or use a gyan.dev build |
winget installed it but ffmpeg isn’t found | Terminal hasn’t reloaded PATH, or the winget PATH hiccup | Reopen the terminal / reboot; if it persists, do the manual install |
A few commands to try first
Once ffmpeg -version works, here are practical one-liners. Run them from the folder that holds your input file, or use full paths.
Convert a video to MP4 (H.264 + AAC):
Compress a video by lowering quality (CRF — higher number = smaller file):
CRF 18–28 is the useful range for H.264; 23 is the default, and ~28 noticeably shrinks the file with modest quality loss.
Extract audio from a video to MP3:
Convert any audio file to MP3:
Trim a clip (start at 30s, take 10s) without re-encoding:
Inspect a file’s streams, codecs, and duration:
Prefer not to install anything?
FFmpeg is the right tool when you need scripting, batch jobs, or precise control. But if you only want to do the two most common things people install FFmpeg for — shrink a video or compress some audio — you can skip the install entirely. xconvert runs the conversion server-side (the heavy lifting happens on our servers, not on your machine), so there’s nothing to download or configure:
- Compress MP4 — drop in a video, pick a target, download the smaller file.
- Audio compressor — same idea for MP3, WAV, and other audio.
Uploaded files are processed and then automatically removed after a few hours. It’s the no-setup option for one-off jobs; for repeatable pipelines, FFmpeg on PATH is still the way to go.
FAQ
Does FFmpeg have an official Windows installer?
No. The FFmpeg project doesn’t ship a Windows .msi or .exe installer. You either use winget (which downloads a community build for you) or manually download and extract a ZIP from gyan.dev or BtbN, then add it to PATH. Both builders are the ones linked from the official ffmpeg.org download page.
Why does Windows say “‘ffmpeg’ is not recognized”?
Almost always one of two things: the bin folder isn’t on your PATH, or you’re using a terminal that was open before you edited PATH. Confirm the exact ...\bin folder (the one containing ffmpeg.exe) is in your PATH, then open a brand-new Command Prompt or PowerShell window. If it still fails, sign out and back in, or reboot.
Should I download the “essentials” or “full” build from gyan.dev?
For most people, full is the safe default — it includes every common library plus extras. Essentials is a smaller download that still covers everyday H.264/H.265/AAC/MP3 work. Either is fine; you won’t notice the difference unless you need an unusual codec.
What’s the difference between gyan.dev and BtbN builds?
Both are reputable and linked from ffmpeg.org. gyan.dev offers clearly versioned release builds plus a git build, in .7z and .zip. BtbN auto-builds from master daily and is handy if you need the very latest development code; its plain ffmpeg-master-latest-win64-gpl.zip is a static build, and it targets Windows 7+ provided the UCRT is installed. For stability, prefer a gyan.dev release build.
What’s the latest FFmpeg version?
The current stable line is the 8.1 series (“Hoare”), cut from master on 2026-03-08; as of mid-June 2026 the source release is 8.1.2. Pre-built Windows binaries trail the source release by a few days. Because the number changes often, check the gyan.dev build page or ffmpeg.org for the exact current version rather than relying on a number in any guide.
Do I have to put FFmpeg in C:\ffmpeg?
No — that’s just a tidy, easy-to-type example. FFmpeg can live anywhere, as long as you (a) keep it in a permanent location (not Downloads) and (b) add the inner bin folder to PATH. If you ever move it, update the PATH entry to match.
Can I run FFmpeg without admin rights?
Yes. Extract it to a folder your account can write to (e.g. inside your user profile) and add the bin folder to your User PATH variable instead of the System one. User variables don’t require administrator privileges.
Sources
Last verified 2026-06-17.
- FFmpeg — Download page — confirms no official Windows installer; lists gyan.dev and BtbN as the Windows build providers; states the 8.1 “Hoare” release branch and latest 8.1.2 (released 2026-06-17, cut from master 2026-03-08).
- CODEX FFmpeg @ gyan.dev — Builds — release-essentials/full/full-shared/git-full variants,
.7zand.zipformats, hosts ffmpeg/ffprobe/ffplay. - BtbN/FFmpeg-Builds — Releases — static
ffmpeg-master-latest-win64-gpl.zipandgpl-sharedvariants; daily master builds; Windows 7+ with UCRT. - Microsoft — Windows Package Manager (winget) and Gyan.FFmpeg PATH issue #95349 —
winget install -e --id Gyan.FFmpeg; requires Win10 1809+/Win11; known occasional PATH-setup issue. - Microsoft — Edit environment variables and Latest supported Visual C++ / UCRT downloads — PATH editing and the runtime BtbN builds depend on.
