在 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 安装到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.