在windows下编译FFmpeg较linux下要复杂许多,网上各种资料,自己编译的时候也踩过不少坑。
环境:
windows7 64bit,VS2015,FFmpeg版本
commit b41b6b323417ce1e79bf818f91d60526697954f1
Author: Danil Iashchenko <danyaschenko@gmail.com>
Date: Fri Jun 15 05:55:34 2018 +0300
libavfilter/opencl: Add macro for setting opencl kernel arguments
原理和思路:
1. 采用MinGW来模拟GNU的开发环境(可以简单理解为configure、make等cmd的支持)
2. 采用yasm作为汇编编译器
3. 修改环境变量使msvc作为编译器和链接器
步骤:
1. MinGW的安装
下载地址:https://sourceforge.net/projects/mingw/?source=typ_redirect
勾选如上安装信息,然后在Installation中选择Apply Changes.
将C:\MinGW\bin;C:\MinGW\msys\1.0\bin(或你指定的安装路径) 添加到环境变量,系统变量Path中去。
2. Yasm安装和配置
下载地址:http://yasm.tortall.net/Download.html
将下载后的exe从命名为yasm.exe放到C:\MinGW\bin下面去,这样子在就相当于添加到系统变量中区了。
3. 修改环境变量使msvc作为编译器和链接器
a. MinGW中添加msvc环境
在C:\MinGW\msys\1.0\msys.bat的开头第一行添加msvc的环境的添加脚本(以vs2015为例子):
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
这样子msvc的运行时环境就添加到mingw的运行时环境中去了
b. 修改link.exe
由于msys中gcc link.exe和msvc是重名的,
因此重命名C:\MinGW\msys\1.0\bin\link.exe为msys-link.exe,或者其他名字也可以
4. 下载FFmpeg代码
git config --global core.autocrlf false
git clone https://github.com/FFmpeg/FFmpeg.git
git rm --cached -r .
git reset --hard
具体原因是防止make的时候解析crlf等字符错误
5. 编译:
运行msys.bat
C:\MinGW\msys\1.0>msys.bat
在msys中configure FFmpeg
./configure --toolchain=msvc
make -j4