欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

VC编译FFmpeg(带调试信息)

程序员文章站 2022-03-02 12:25:55
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 ......

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

相关标签: FFmpeg