在 Windows 上从源代码构建 FFmpeg
本页介绍如何在 Windows 上配置和构建FFmpeg。其中包括
- 获取 FFmpeg 源代码。
- 安装所需的依赖项。
- 为 MSVC 或 MinGW-w64 从命令行配置 FFmpeg。
- 构建开发库。
获取 FFmpeg 源代码
您可以通过以下方式获取 FFmpeg 源代码:
- 从FFmpeg 下载页面下载。
- 从 git 克隆。例如,此命令将 7.1 版的 FFmpeg 源代码克隆到
C:\FFmpeg\ffmpeg
。C:\FFmpeg> git clone --branch n7.1 https://git.ffmpeg.org/ffmpeg.git ffmpeg
建议使用与Qt Multimedia 主页中记录的相同的 FFmpeg 版本。
以下段落假定您将 FFmpeg 源代码存储在C:\FFmpeg\ffmpeg
下。
先决条件
要构建 FFmpeg,需要以下工具和软件包:
- Microsoft Visual Studio 编译器 (MSVC) 或 MinGW-w64。
- MSYS2.
- MSYS 软件包(perl、make、yasm 和 diffutils)。
有关 Qt 也支持的推荐编译器,请参阅 Qtfor Windows - 从源代码构建。您可以使用Qt Online Installer 安装受支持的 MinGW-w64 编译器。
安装 MSYS2
要安装 MSYS2,您可以
- 使用MSYS2 安装程序。
- 使用winget软件包管理器。
winget install msys2.msys2
本文档中的说明依赖于 MSYS2 安装到C:\msys64\
,这是使用winget
时的默认路径。
安装完成后,从 Windows 开始菜单启动MSYS2 MINGW64
shell,并使用它安装必要的库。
pacman -S --noconfirm perl make yasm diffutils
在编译 FFmpeg 之前,MSYS2 的PATH
中必须有一个编译器。MSVC 和 MinGW-w64 的做法不同。为您使用的编译器准备 MSYS2 环境。
为使用 Mingw-w64 构建准备 MSYS 环境
对于安装在C:\Qt\Tools\mingw1310_64\bin
下的 MinGW-w64,可以通过导出 PATH 环境变量将其添加到PATH
。
$ export PATH=/c/Qt/Tools/mingw1310_64/bin:$PATH
请注意,也可以使用 pacman 安装 MinGW-w64。
$ pacman -S mingw-w64-x86_64-toolchain
为 MSVC 准备 MSYS2 环境
在 MSYS2 下使用 MSVC 编译器构建 FFmpeg 时,需要在启动 MSYS2 时在路径中包含相应的 C 和 C++ 编译器。对于 64 位编译,您可以
- 从 Windows 开始菜单启动Visual Studio x64 本地工具命令提示符。
- 通过运行以下命令从现有命令提示符启用 MSVC 编译器:
"C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64
从该命令提示符启动 MSYS2 shell,并选择 MINGW64 环境和启用路径继承。
C:\msys64\msys2_shell.cmd -mingw64 -full-path
这将启动一个新的 shell 窗口,您可以在此验证 MSVC 编译器是否可用。
$ which cl.exe
配置和构建 FFmpeg
从准备好的 MSYS2 shell,导航到/c/FFmpeg
目录。在该目录中,创建一个build
目录,其中将包含 FFmpeg 的构建工件,并导航到该目录。
$ cd /c/FFmpeg/build
要配置 FFmpeg 以使用 MinGW-w64 构建,请运行:
$ ../ffmpeg/configure --prefix=../install --disable-doc --enable-network --enable-shared
要配置 FFmpeg 以使用 MSVC 构建,除其他命令行选项外,还需指定工具链:
$ ../ffmpeg/configure --prefix=../install --disable-doc --enable-network --enable-shared --toolchain=msvc
--prefix
参数指定了构建后安装 FFmpeg 开发库的路径。不需要文档,但应启用网络功能。要将 FFmpeg 作为静态库构建,请省略--enable-shared
选项。
configure
命令执行完毕后,使用make
命令构建并安装 FFmpeg。
$ make -j install
如果编译无误,FFmpeg 开发库将安装在C:\FFmpeg\install
目录中。如果编译Qt Multimedia ,该路径将存储在配置Qt Multimedia 时使用的FFMPEG_DIR
变量中。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.