编译环境
Windows 10
编译流程
安装msys2
- 下载:MSYS2
-
安装:点击下载好的exe,这里选择默认的安装路径:
C:\msys64
. -
配置环境变量:在windows的左下侧搜索栏,搜索
环境变量
,然后点击编辑系统环境变量
。并将安装路径C:\msys64
添加到系统变量Path中。 -
在windows的搜索栏搜索
msys2
,打开msys2的命令行窗口。
![](https://img-blog.csdnimg.cn/99f175a8946c42639cd70cc9329e28af.png)
- 下载相关编译工具。在命令行中输入:
pacman -S mingw-w64-x86_64-toolchain
- 使用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
。
![](https://img-blog.csdnimg.cn/5171b1e6a2b14352a554313967de2364.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ruh5Zi06LeR54Gr6L2m55qE5bCP5Zyf5Yyq,size_19,color_FFFFFF,t_70,g_se,x_16)
- 在弹出窗口中,输入:
msys2_shell.cmd -mingw64
- 在弹出的mingw64命令窗口中,切换到ffmpeg源码目录:
cd /c/source/ffmpeg
- 然后输入编译命令:
./configure --toolchain=msvc --enable-shared --enable-debug --prefix=../ffmpeg_build --extra-cflags="-I../source/ffmpeg_build/include" --extra-ldflags="-LIBPATH:../source/ffmpeg_buid/lib"
![](https://img-blog.csdnimg.cn/34543ddf28a24bd29f09e79e0ce6a6c6.png)
解释一下编译命令:
./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
。
- 等待configure执行完毕后,继续输入下列命令,把源码文件编译成二进制可行文件:
make -j12 && make install
验证FFmpeg编译
- 在
C:\source\ffmpeg_build\bin
下可以看见生成的ffmpeg.exe
:
![](https://img-blog.csdnimg.cn/29bbbd1bc93a43569a7ecddcb44aac9a.png)
- 切换到
C:\source\ffmpeg_build\bin
目录。输入ffmpeg -version
验证:
![](https://img-blog.csdnimg.cn/e71c661a53ae4373a5e6fac72ed8ce6a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ruh5Zi06LeR54Gr6L2m55qE5bCP5Zyf5Yyq,size_14,color_FFFFFF,t_70,g_se,x_16)
注:建议把ffmpeg.exe
所在目录,即C:\source\ffmpeg_build\bin
,加入windows系统环境变量,就可随时使用ffmpeg命令行。
参考资料: