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
本文地址:https://blog.csdn.net/u013699869/article/details/50389266
下一篇: CUDA图像形态学腐蚀、膨胀CUDA实现