编译环境
Windows 10
编译流程
安装msys2
- 下载:MSYS2
-
安装:点击下载好的exe,这里选择默认的安装路径:
C:\msys64
. -
配置环境变量:在windows的左下侧搜索栏,搜索
环境变量
,然后点击编辑系统环境变量
。并将安装路径C:\msys64
添加到系统变量Path中。 -
在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
- 下载、安装Visual Studio。
- 在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命令行。
参考资料: