ffmpeg windows 编译

老刘

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位就行。

编译前必须准备的工具和环境

先把基础软件装好,后面少踩坑。

  1. 下载并安装Git for Windows
    官网随便搜“Git Windows”下载最新版,安装时一路下一步,记得勾选“Git from the command line and also from 3rd-party software”。

  2. 下载MSYS2(强烈推荐用这个环境)
    去MSYS2官网下载x86_64安装包,装到默认路径C:\msys64即可。装完后先打开“MSYS2 MSYS”终端,执行两次更新:

    pacman -Syu

    关掉窗口再开一次,再执行:

    pacman -Su

    直到提示没有更新为止。

  3. 准备一个干净的工作目录
    建议在D盘建一个文件夹,比如D:\ffmpeg_build,后面所有操作都放这里,路径尽量别有中文和空格。

装完以上三样,基础环境就齐了。下面给你两种编译路线:一条是小白友好的一键脚本,另一条是手动精细控制,按自己需求选。

方法一:使用Media Autobuild Suite一键编译(最适合新手)

这是目前Windows上最省心的方案,脚本会自动下载FFmpeg源码和几十个依赖库,帮你配置好编译参数。

具体操作步骤

  1. 打开浏览器搜索“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下。

  2. 双击运行media-autobuild_suite.bat。第一次运行会弹出选项菜单,按下面推荐选:

    • 架构选2(x86_64)
    • 编译类型选1(static,静态库,最后只有一个exe)
    • 是否下载源码选1(yes)
    • 是否编译非免费库选1(yes,这样才有x264/x265)
    • 其他选项保持默认就行,最后确认。
  3. 脚本会自动装一堆MSYS包、下载源码,这个过程可能要1~3小时,看网速和电脑性能。中途不要关窗口,也别让电脑休眠。

  4. 编译完成后,在build文件夹里的local64\bin-video目录下就能找到ffmpeg.exe、ffprobe.exe、ffplay.exe。把它们复制到你想放的地方,比如C:\ffmpeg\bin,然后把这个路径加到系统环境变量Path里。

  5. 打开普通的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用法完全一样,直接替换你原来的版本就能用。

文章版权声明:文章内容均来源于各大短视频平台搜集以及修改和删减新增,如有侵权或者违规,请联系站长进行删除,如需转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,1人围观)

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

目录[+]