VC编译FFmpeg(带调试信息)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013699869/article/details/50389266

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

扫描二维码关注公众号,回复: 2960730 查看本文章

./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


猜你喜欢

转载自blog.csdn.net/u013699869/article/details/50389266