以前一直以为MinGW编译出来的ffmpeg静态库无法用在VC中,最近才发现不是。方法其实也很简单,先编译ffmpeg的静态库,configure 的时候加上 --enable-static 的选项。
要使用ffmpeg的静态库,必须把ffmpeg用到的其他静态库也链接到VC的工程中。这些库主要包括
libgcc.a:gcc的函数库,一般在C:\MinGW\lib\gcc\mingw32\4.x.x\
libmingwex.a:_snprint函数所在,一般在C:\MinGW\lib\
libcoldname.a:_strcasecmp的实现,也在C:\MinGW\lib\
wsock32.lib:Windows socket库
libz.a:zip压缩库
libfaad、libx264等额外编解码库
ffmpeg.arrozcru.com上面提到,静态库的链接顺序一定不能错,否则运行时会出现一些莫名其妙的问题。建议的链接顺序是
libgcc.a libmingwex.a libcoldname.a
libavcodec.a libavformat.a libavutil.a libswscale.a libz.a libdts.a libfaac.a
libfaad.a libgsm.a libmp3lame.a libnut.a libogg.a libtheora.a libvorbis.a
libvorbisenc.a libx264.a libxvidcore.a libpthreadGC2.a
wsock32.lib vfw32.lib