Windows 下用 VS2015+MSYS 一键编译 FFMPEG 生成 FFPLAY

Windows 下用 VS2015+MSYS 一键编译 FFMPEG 生成 FFPLAY


前提条件,你已经安装了可以编译FFMPEG的编译环境。

如果你还没有配置好编译环境,可以看这里:用VS2015编译FFMPEG

因为编译 ffplay 需要 sdl2 ,所以你首先的编译 sdl2。

从管网上下载 sdl2 源码,我下载的是 SDL2-2.0.5,zip

用VS2015 编译很容易,用 VS2015 打开 D:\SDL2-2.0.5\VisualC\SDL.sln 工程,直接编译就可以了。

工程有很多 test 工程,我们仅要编译 SDL2 就可以了。在工程管理器中,选中 sdl2 工程,右键选择编译,仅编译 SDL2 就可以了。

注意红色标识部分。

第一处标识,表示是一个VS2010工程,但我们也可以用VS2015打开。

第二处标识,表示我们仅编译这个 sdl2,其它的因为用不到,可以不编译。节约编译时间。



把 编译生成 sdl2.dll,sdl2.lib 和 include 目录下头文件复制到 d:\sdl2目录下:

D:\sdl2\SDL2.dll
D:\sdl2\include\...
...............................
D:\sdl2\include\...
D:\sdl2\lib\SDL2.lib


在任意位置,建立 bat 文件,build.bat,内容如下:

call "D:\Language\VS2015\VC\bin\vcvars32.bat"
set MSYS=D:\Language\MinGW32\msys\1.0\bin
if exist %msys%\sdl2-config del %msys%\sdl2-config
echo #! /bin/sh>>%msys%\sdl2-config
echo SDL_MAJOR_VERSION=2 >>%msys%\sdl2-config
echo SDL_MINOR_VERSION=0 >>%msys%\sdl2-config
echo SDL_MICRO_VERSION=5 >>%msys%\sdl2-config
echo includedir='D:\\\\SDL2\\\\include'>>%msys%\sdl2-config
echo SDL_CFLAGS=>>%msys%\sdl2-config
echo libdir='D:\\\\SDL2\\\\lib'>>%msys%\sdl2-config
echo SDL_RLD_FLAGS=>>%msys%\sdl2-config
echo SDL_LIBS="-lSDL2">>%msys%\sdl2-config
echo SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION>>%msys%\sdl2-config
echo while test $# -gt 0; do>>%msys%\sdl2-config
echo   case $1 in>>%msys%\sdl2-config
echo     --cflags)>>%msys%\sdl2-config
echo       echo -I${includedir} ${SDL_CFLAGS}>>%msys%\sdl2-config
echo       ;;>>%msys%\sdl2-config
echo     --libs)>>%msys%\sdl2-config
echo       echo /LIBPATH:${libdir} ${SDL_RLD_FLAGS} ${SDL_LIBS}>>%msys%\sdl2-config
echo       ;;>>%msys%\sdl2-config
echo     --version)>>%msys%\sdl2-config
echo       echo ${SDL_VERSION}>>%msys%\sdl2-config
echo       ;;>>%msys%\sdl2-config
echo   esac>>%msys%\sdl2-config
echo   shift>>%msys%\sdl2-config
echo done>>%msys%\sdl2-config

path=%MSYS%;%path%
set INCLUDE=%INCLUDE%
set LIB=%LIB%

cd\
E: 
cd source\ffmpeg
bash -c "./configure --enable-gpl --enable-static --prefix=./vs2015 --toolchain=msvc"
bash -c "make all"
bash -c "make install"

pause


vs2015,msys 的安装路径安装你的实际路径修改。

ffmpeg 的源码目录,也按照你的实际路径修改。

执行 build.bat ,就开始编译了。

结束后,你会在 ffmpeg 源代码目录下的 vs2015 目录下,看见你要的ffmpeg 开发的 头文件、库文件,以及bin目录下的: ffmpeg.exe、ffplay.exe、ffprobe.exe。

把sdl2.dll 复制到 bin 目录下,ffplay.exe 就可以运行了。

编译OK。


生成的 libavcodec.a 等静态库文件VC可以直接引用。

将 ffmpeg 封装成一个dll文件,就轻而易举了。

用VS2015建立一个dll,工程名称:ffdec

在 ffdec.cpp 中添加如下内容:

#pragma comment(lib, "libavcodec.a")

#pragma comment(lib, "libavdevice.a")
#pragma comment(lib, "libavfilter.a")
#pragma comment(lib, "libavformat.a")
#pragma comment(lib, "libavutil.a")
#pragma comment(lib, "libpostproc.a")
#pragma comment(lib, "libswresample.a")
#pragma comment(lib, "libswscale.a")

#pragma comment(lib, "Strmiids.lib")
#pragma comment(lib, "Shlwapi.lib")
#pragma comment(lib, "Vfw32.lib")
#pragma comment(lib, "Ws2_32.lib")
#pragma comment(lib, "Secur32.lib")


设置一下 模块定义文件 ffdec.def,设置好头文件、库文件搜索路径好后,编译。

就可以得到一个独立的 ffdec.dll文件了。


OVER。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值