Windows下FFmpeg编译完整教程:小白从零到可用的实操指南
很多人用FFmpeg都是直接下载别人编好的成品包,方便是方便,但经常遇到缺编解码器、版本太旧、想加NVENC硬件加速却用不了的情况。自己编译就能彻底解决这些问题:想要什么库就编什么库,还能跟上官方最新代码。下面这篇是专门写给Windows用户的,从最基础的环境准备到编译出可用的ffmpeg.exe,一步一步走完,电脑小白也能照着做出来。
为什么要在Windows上自己编译FFmpeg
官方预编译包为了兼容性砍掉了不少第三方库,比如x265的10bit、AV1、某些硬件加速。自己编译的好处很直接:
- 可以开启所有需要的编解码器(libx264、libx265、libvpx、libaom、libopus等)
- 支持NVIDIA NVENC、Intel QSV、AMD AMF硬件加速
- 静态编译出来一个exe就能带走,不依赖一堆dll
- 能打上自己需要的补丁或者用最新Git代码
硬件要求不高:内存建议16GB以上(编译时吃内存),硬盘至少留50GB空闲,CPU核数越多越快。系统用Windows 10/11 64位就行。
编译前必须准备的工具和环境
先把基础软件装好,后面少踩坑。
-
下载并安装Git for Windows
官网随便搜“Git Windows”下载最新版,安装时一路下一步,记得勾选“Git from the command line and also from 3rd-party software”。 -
下载MSYS2(强烈推荐用这个环境)
去MSYS2官网下载x86_64安装包,装到默认路径C:\msys64即可。装完后先打开“MSYS2 MSYS”终端,执行两次更新:pacman -Syu关掉窗口再开一次,再执行:
pacman -Su直到提示没有更新为止。
-
准备一个干净的工作目录
建议在D盘建一个文件夹,比如D:\ffmpeg_build,后面所有操作都放这里,路径尽量别有中文和空格。
装完以上三样,基础环境就齐了。下面给你两种编译路线:一条是小白友好的一键脚本,另一条是手动精细控制,按自己需求选。
方法一:使用Media Autobuild Suite一键编译(最适合新手)
这是目前Windows上最省心的方案,脚本会自动下载FFmpeg源码和几十个依赖库,帮你配置好编译参数。
具体操作步骤
-
打开浏览器搜索“media-autobuild_suite github”,进入m-ab-s的仓库,点绿色的Code按钮,下载ZIP包。或者直接用Git克隆:
git clone https://github.com/m-ab-s/media-autobuild_suite.git把文件夹放到D:\ffmpeg_build下。
-
双击运行media-autobuild_suite.bat。第一次运行会弹出选项菜单,按下面推荐选:
- 架构选2(x86_64)
- 编译类型选1(static,静态库,最后只有一个exe)
- 是否下载源码选1(yes)
- 是否编译非免费库选1(yes,这样才有x264/x265)
- 其他选项保持默认就行,最后确认。
-
脚本会自动装一堆MSYS包、下载源码,这个过程可能要1~3小时,看网速和电脑性能。中途不要关窗口,也别让电脑休眠。
-
编译完成后,在build文件夹里的local64\bin-video目录下就能找到ffmpeg.exe、ffprobe.exe、ffplay.exe。把它们复制到你想放的地方,比如C:\ffmpeg\bin,然后把这个路径加到系统环境变量Path里。
-
打开普通的cmd或PowerShell,输入ffmpeg -version,能输出版本信息和配置列表就说明成功了。
这个方法几乎不用自己写命令,脚本把依赖关系都处理好了。如果你只是想要一个功能全的FFmpeg,到这里就够用。
方法二:手动用MSYS2从源码编译(进阶可控)
想精确控制编译参数,或者脚本失败了,就走手动路线。
第一步:安装编译工具链和依赖
打开“MSYS2 MinGW 64-bit”终端(注意不是MSYS那个),依次执行:
pacman -S --needed base-devel mingw-w64-x86_64-toolchain
pacman -S mingw-w64-x86_64-yasm mingw-w64-x86_64-nasm mingw-w64-x86_64-pkg-config
pacman -S git
想要完整功能,再装常用库:
pacman -S mingw-w64-x86_64-x264 mingw-w64-x86_64-x265 mingw-w64-x86_64-libvpx
pacman -S mingw-w64-x86_64-opus mingw-w64-x86_64-lame mingw-w64-x86_64-libvorbis
pacman -S mingw-w64-x86_64-SDL2 mingw-w64-x86_64-libass
硬件加速相关(有NVIDIA显卡再装):
pacman -S mingw-w64-x86_64-ffnvcodec-headers
第二步:拉取FFmpeg源码
cd /d/ffmpeg_build
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
第三步:配置编译参数
这是最关键的一步。下面给一个功能比较全的配置命令,直接复制粘贴:
./configure \
--prefix=/d/ffmpeg_build/ffmpeg_install \
--enable-gpl \
--enable-version3 \
--enable-static \
--disable-shared \
--enable-libx264 \
--enable-libx265 \
--enable-libvpx \
--enable-libopus \
--enable-libmp3lame \
--enable-libvorbis \
--enable-libass \
--enable-sdl2 \
--enable-ffnvcodec \
--enable-nvenc \
--enable-cuda-llvm \
--extra-cflags="-I/mingw64/include" \
--extra-ldflags="-L/mingw64/lib" \
--pkg-config-flags="--static"
如果你没有NVIDIA显卡,把--enable-ffnvcodec --enable-nvenc --enable-cuda-llvm这三行删掉。想加Intel QSV就再加--enable-libmfx。配置过程会检查依赖,缺什么会报错,根据提示用pacman补装即可。
第四步:开始编译和安装
make -j$(nproc)
make install
-j后面的数字是CPU线程数,可以写你电脑的核心数,编译会快很多。编译时间通常在30分钟到2小时之间。完成后,ffmpeg_install\bin目录里就是你要的文件。
编译后验证和常见问题处理
验证命令:
ffmpeg -encoders | findstr nvenc
ffmpeg -decoders | findstr hevc
能看到对应编码器就说明启用成功。
常见坑及解决办法:
- 配置时提示找不到x264:确认pacman装过mingw-w64-x86_64-x264,并且用的是MinGW 64-bit终端。
- 编译到一半报错内存不足:关掉浏览器和其他软件,或者把-j参数改成-j4。
- 想更新到最新代码:在ffmpeg目录执行git pull,然后重新configure和make。
- 静态编译出来的exe很大(100MB+):正常现象,因为把所有库都打进去了。想减小体积可以去掉不需要的--enable选项。
- 运行时提示缺少dll:说明你编成了shared模式,重新用--enable-static --disable-shared再编一次。
额外优化建议和避坑点
编译完建议马上做一次完整测试:用ffmpeg把一段视频转成H.265,再转回H.264,看看速度和画质。如果开了NVENC,加上-c:v h264_nvenc参数,CPU占用会明显下降。
路径里尽量别出现中文,有些老脚本会抽风。编译环境最好单独放一个盘,不要和系统盘混在一起。如果以后要频繁编译,可以把Media Autobuild Suite的配置文件保存下来,下次直接复用选项。
对于只想快速用上新功能的朋友,优先走Media Autobuild Suite;需要深度定制或者学习编译原理的,再上手手动MSYS2方式。两种方法最终得到的ffmpeg.exe用法完全一样,直接替换你原来的版本就能用。

还没有评论,来说两句吧...