VC编译FFmpeg(带调试信息)

1、需要MinGW,Basic Setup就可以了,这样同时安装了msys。

2、下载yasm-1.3.0-win64.exe(我的是64位操作系统),复制到C:\MinGW\msys\1.0\bin目录下,并改名为yasm.exe。

3、编辑C:\MinGW\msys\1.0目录下的msys.bat文件,在首行加上call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"(注意自己的VS版本)。

4、将C:\MinGW\msys\1.0\bin目录下的link.exe文件重命名为link_msys.exe,为了避免和C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin目录下的link.exe冲突。

5、双击msys.bat,切换到FFmpeg目录,比如:cd /c/ffmpeg-2.8.4。

6、./configure --enable-shared --prefix=./vs2013_build --toolchain=msvc --enable-debug

7、make

8、make install

编译成功之后,vs2013_build文件下会有bin、include、lib、和share。./configure --help可以查看配置选项,根据需求设置,我们这里编的动态库(动态库和静态库不能同时编,只能选一个,configure文件中有说明)。由于配置选项的设置不同,可能造成编译失败,比如出现链接错误。另外,不要设置调试等级,cl是不认的,比如设为--enable-debug=3(maximal debug information),在make过程中会看到cl : Command line warning D9002: ignoring unknown option '-g3'。这样即使产生PDB文件,我们也无法单步调试。我们可以看一下PDB文件内容,用什么查看呢?C:\Program Files (x86)\Microsoft Visual Studio 12.0\DIA SDK\Samples\DIA2Dump路径下的工程编译一下,Debug文件中生成的Dia2Dump.exe就是我们要的东东。Dia2Dump xxx.pdb>>D:\xxx.txt,打开txt可以看到,虽然xxx.dll和各函数下都有”Compiled without debugging info: no“字样,但是各xxx.o下却有”Compiled without debugging info: no“字样。另外,VS版本最好不要用2012及其以前的,原因嘛,参见:http://ffmpeg.org/platform.html#Windows。我们这里仅编译了FFmpeg源码,根据需求可以编依赖的的库,比如我们想要ffplay.exe,则需要SDL。

附加:

1、如果想支持H.264编码,源码下载:http://www.videolan.org/developers/x264.html

./configure --enable-shared --extra-ldflags=-Wl,--output-def=libx264.def

这样会生成libx264.dll和libx264.def,有了它们,再利用C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin目录下的lib.exe就可以生成libx264.lib,命令如下:

LIB /DEF:libx264.def

执行完make、make install后,将C:\MinGW\msys\1.0\local目录下的bin、include和lib复制到C:\ffmpeg-2.8.4目录下。

./configure --enable-shared --prefix=./vs2013_build --toolchain=msvc --enable-debug --enable-gpl --enable-version3 --enable-nonfree --enable-libx264 --extra-cflags=-Ic:/ffmpeg-2.8.4/include --extra-ldflags=-LIBPATH:c:/ffmpeg-2.8.4/lib

注意,默认使用gcc编译时,指定链接库路径是--extra-ldflags=-Lc:/ffmpeg-2.8.4/lib;这里用VC编译,就不能这样这样设置了,否则,LINK : warning LNK4044: unrecognized option '/Lc:/ffmpeg-2.8.4/lib'; ignored。此外,libx264.lib要复制到c:/ffmpeg-2.8.4/lib中,并重命名为x264.lib。若不重命名的话,LINK : fatal error LNK1181: cannot open input file 'x264.lib',ERROR: libx264 not found。

之后就放心make吧。

2、开启mp3编码 --enable-libmp3lame,也是类似的套路。源码下载:http://lame.sourceforge.net/。可以直接用编好的库:http://www.rarewares.org/mp3-lame-libraries.php

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值