1.
首先下载ffmpeg2.6.9
地址如下:
链接:https://pan.baidu.com/s/1yV-rFJ3PruXMSapxJbHXww
提取码:y8dj
2.
下载msys+mingw64
地址如下:
链接:https://pan.baidu.com/s/1J5nnLyzYCWOc5sOY03bthg
提取码:3j0f
3.
修改msys.bat
第一行增加如下:
call "D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat"
64位则增加如下:
call "E:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\vcvarsamd64.bat”
这个路径需要去你的VS2015安装路径里面找
4.
去开始菜单找到VS2015的工具,“VS2015 x86 本机工具命令提示符”
64位则如下:
“VS2015 x64 本机工具命令提示符”
5.
切换到msys.bat目录下,并运行该脚本,会弹出msys的命令窗口
6.
执行
./myconfig_vs2015.sh其内容如下:
./configure --arch=x86 --toolchain=msvc --enable-yasm --host-os=win32 --disable-decoders --disable-encoders --enable-static --enable-encoder=mjpeg --enable-decoder=h264 --enable-decoder=mjpeg --enable-decoder=mpeg4 --enable-parser=h264 --enable-parser=mpeg4video --enable-parser=mpegvideo
64位则如下:
./configure --arch=x86_64 --toolchain=msvc --enable-yasm --host-os=win64 --disable-decoders --disable-encoders --enable-static --enable-encoder=mjpeg --enable-decoder=h264 --enable-decoder=mjpeg --enable-decoder=mpeg4 --enable-parser=h264 --enable-parser=mpeg4video --enable-parser=mpegvideo
7.
修改config.mak文件
删除其中的
-Dsnprintf=_snprintf
-Dsnprintf=avpriv_snprintf
-D_snprintf=avpriv_snprintf
-Dvsnprintf=avpriv_vsnprintf
否则出如下错误:
C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt\stdio.h(1419):
note: 命令行参数: 参见前面的“vsnprintf”定义
C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt\stdio.h(1421):
fatal error C1189: #error: Macro definition of vsnprintf conflicts with Standa
d Library function declaration
8.
修改compat\msvcrt\snprintf.c
添加#include "snprintf.h"
否则出如下错误:
CC libavutil/../compat/msvcrt/snprintf.o
snprintf.c
libavutil/../compat/msvcrt/snprintf.c(41): error C4013: “avpriv_vsnprintf”未定
义;假设外部返回 int
make: *** [libavutil/../compat/msvcrt/snprintf.o] Error 2
9.
修改ffmpeg.c
文件中#elif HAVE_KBHIT 改成#elif 0 //HAVE_KBHIT,有两处,都需要该
否则出如下错误
ffmpeg.c(395): error C2039: “_cnt”: 不是“_iobuf”的成员
C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt\corecrt_wstdio.
h(26): note: 参见“_iobuf”的声明
10.
执行make
11.
会有很多警告,忽略,别在意
12.
执行make install
13.
切换到/local 文件夹下,里面有编译好的静态库,头文件,以及可执行程序。
注意:不要用VS2008一下编译,VS2010没试过,VS2008标准是C98标准,好多语法不识别,VS2015用的C99标准,就可以了。编译出的库要在VS2015中使用,不要用其他版本的VS
另外附录已经编译好的库的地址:
链接:https://pan.baidu.com/s/145uMiRjKleK_GJDK1-scuA
提取码:6f75