FFmpeg:编译(Windows)

1,417 阅读3分钟

编译环境

Windows 10

编译流程

安装msys2

  1. 下载:MSYS2
  1. 安装:点击下载好的exe,这里选择默认的安装路径:C:\msys64.

  2. 配置环境变量:在windows的左下侧搜索栏,搜索环境变量,然后点击编辑系统环境变量。并将安装路径C:\msys64添加到系统变量Path中。

  3. 在windows的搜索栏搜索msys2,打开msys2的命令行窗口。

5.下载相关编译工具。在命令行中输入:

pacman -S mingw-w64-x86_64-toolchain

6.使用Notepad++打开C:\msys64\msys2_shell.cmd,搜索rem set MSYS2_PATH_TYPE=inherit,去掉rem,即更改为:

set MSYS2_PATH_TYPE=inherit

下载FFmpeg源码

C:\source下执行下列git命令,即在下载源码至C:\source\ffmpeg

git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

编译FFmpeg

  1. 下载、安装Visual Studio
  2. 在windows的搜索栏搜索x64 Native Tools,然后点击x64 Native Tools Command Prompt For VS 2019

3.在弹出窗口中,输入:

msys2_shell.cmd -mingw64

4.在弹出的mingw64命令窗口中,切换到ffmpeg源码目录:

cd /c/source/ffmpeg

5.然后输入编译命令:

./configure --toolchain=msvc --enable-shared --enable-debug --prefix=../ffmpeg_build --extra-cflags="-I../source/ffmpeg_build/include" --extra-ldflags="-LIBPATH:../source/ffmpeg_buid/lib"

解释一下编译命令:

  • ./configure:执行当前目录,即C:\source\ffmpeg下的脚本文件configure。打开configure文件,你会有搜索到ffmpeg常用的一些编译命令的注释,比如--enable-shared等。
  • --enable-shared:编译成动态链接库(dll)。
  • --enable-debug:允许对ffmpeg源码进行调试。
  • --prefix=../ffmpeg_build:指定编译结果的存放路径为C:\source\ffmpeg_build。这里写成了相对路径。
  • --extra-cflags="-I../source/ffmpeg_build/include"cflags表示用于C编译器的选项。-I表示在头文件的搜索路径列表中添加dir目录。这里的dir目录指定为C:\source\ffmpeg_build,也写成了相对路径。
  • --extra-ldflags="-LIBPATH:../source/ffmpeg_buid/lib"ldflags设置gcc等编译器会用到的一些优化参数,也可以在里面指定库文件的位置。-LIBPATH:也可以简写成-L,后面紧跟库文件的目录。

关于--prefix--extra-cflags--extra-ldflags路径的差异:

C                       # C盘
├── msys64              # msys2安装目录,也是msys2_shell.cmd所在的目录
└── source
    ├── ffmpeg          # ffmpeg源码根目录,也是configure脚本文件所在目录
    └── ffmpeg_build    # 保存ffmpeg源码编译结果的目录

--prefix的起始目录是ffmpeg源码的根目录,即:C:\source\ffmpeg。所以ffmpeg_build目录的相对路径为:../ffmpeg_build

--extra-cflags--extra-ldflags的起始目录是msys2_shell.cmd所在的目录,也就是C:\msys64。所以ffmpeg_build目录的相对路径为:../source/ffmpeg_buid

6.等待configure执行完毕后,继续输入下列命令,把源码文件编译成二进制可行文件:

 make -j12 && make install

验证FFmpeg编译

1.在C:\source\ffmpeg_build\bin下可以看见生成的ffmpeg.exe

2.切换到C:\source\ffmpeg_build\bin目录。输入ffmpeg -version验证:

注:建议把ffmpeg.exe所在目录,即C:\source\ffmpeg_build\bin,加入windows系统环境变量,就可随时使用ffmpeg命令行。

参考资料:

win10+vs2015下编译ffmpeg和x264

【FFmpeg笔记】04-Win10编译ffmpeg4.2.1(For Windows)