`
xpp02
  • 浏览: 1012838 次
社区版块
存档分类
最新评论

MinGW下编译ffmpeg静态库给Visual C++使用

 
阅读更多

首先推荐http://ffmpeg.zeranoe.com/builds/, 这里已经有编译好的动态连接库。可惜上面没静态链接库。我也试过 DLL2Lib, 但是无法连接LIBCMT库,只能使用MSVCRT

所以一定要静态库的话只能自己编译了。在Windows上用MinGW编译真是个痛苦的过程,没有yum install和apt-get,所有的依赖项要自己找全。

废话少说,下面是编译过程,记录于此。


本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

准备

首先 下载安装 MinGW, 比较赞的是,现在它提供自动化的安装配置程序,相比以前大大简化了安装过程,连fstab都帮你配置了。

安装完成后编辑MinGW\msys\1.0\msys.bat 批处理, 在文件最前面加入一行,调用 Visual Studio的vcvarsall.bat批处理设置环境变量

  1. call"C:\ProgramFiles(x86)\MicrosoftVisualStudio10.0\VC\vcvarsall.bat"

本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

接着在MinGW的下载站点上 下载安装 g++,我下载的版本是4.6.2,覆盖到MinGW目录即可.

http://sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/gcc-4.6.2-1/gcc-c%2B%2B-4.6.2-1-mingw32-bin.tar.lzma/download


然后下载yasmWin32 版本,将文件重命名并分别复制2份到MinGW\bin\yasm.exeMinGW\bin\nasm.exe , 后面很多编译的项目依赖于它们.

执行msys.bat, 在命令行窗口中切换到打算编译的目录。比如我的在L盘, 则使用 cd /L/ 进入, 其它文件命令与Linux一致。

准备活动到此结束,下面就开始漫长的编译过程了。

本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

编译依赖项(下面的版本号是我编译的时候的版本号,不一定必须是这个版本号)

1. Zlib 1.2.7

下载源代码http://zlib.net/解压后:

  1. cdzlib-1.2.7/
  2. make-fwin32/Makefile.gcc
  3. cp-ivzlib1.dll/mingw/bin
  4. cp-ivzconf.hzlib.h/mingw/include
  5. cp-ivlibz.a/mingw/lib
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164
2.libgsm1.0.13-3

下载源代码,http://libgsm.sourcearchive.com/,解压后:

  1. cdgsm/
  2. make

编译到一半的时候出现fchmod 和fchown 的编译错误,不管它,继续执行:

  1. mkdir/mingw/include/gsm
  2. cpinc/gsm.h/mingw/include/gsm
  3. cplib/libgsm.a/mingw/lib

本文地址: http://blog.csdn.net/wangjia184/article/details/7931164
3.LAME 3.99.5

下载源代码, http://sourceforge.net/projects/lame/files/lame/, 解压后:

  1. ./configure--prefix=/mingw--enable-expopt=full
  2. make
  3. makeinstall
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164
4. LIBOGG 1.3.0

下载源代码,http://xiph.org/downloads/,解压后:

  1. ./configure--prefix=/mingw
  2. make
  3. makeinstall
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

5. LIBVorbis 1.3.3

下载源代码,http://xiph.org/downloads/,解压后:

  1. ./configure--prefix=/mingw
  2. make
  3. makeinstall
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

6. LIBSpeex 1.2rc1

下载源代码,http://xiph.org/downloads/,解压后:

  1. ./configure--prefix=/mingw
  2. make
  3. makeinstall
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

7. LIBTheora1.1.1

下载源代码,http://xiph.org/downloads/,解压后:

  1. ./configure--prefix=/mingw
  2. make
  3. makeinstall
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

8. FAAC1.2.8

下载源代码,http://www.audiocoding.com/downloads.html,解压后:

首先编辑 Makefile.am 文件,将第一行 改为

SUBDIRS = include libfaac

然后修改configure.in文件, 找到最后一段的AC_OUTPUT, 修改为

AC_OUTPUT(libfaac/Makefile include/Makefile Makefile)

执行:

  1. ./configure--prefix=/mingw
  2. make
  3. makeinstall
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

9. xvidcore1.3.2

下载源代码,http://www.xvid.org,解压后:

  1. cdxvidcore/build/generic
  2. ./configure--prefix=/mingw

执行到这里后,搜索xvidcore/build/generic 目录下面所有文件中的-mno-cygwin 这个选项, 这个选项已经不被GCC支持,全部删除后继续。
  1. make
  2. makeinstall
  3. cp-iv\=build/xvidcore.dll.a/mingw/lib/libxvidcore.dll.a
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

10. x264snapshot-20120830-2245

下载源代码,http://www.videolan.org/developers/x264.html,解压后:

  1. configure--prefix=/mingw--enable-win32thread--extra-cflags="-DX264_VERSION=20100422"
  2. make
  3. makeinstall
  4. cp-ivx264.hx264_config.h/mingw/include
  5. cp-ivlibx264.a/mingw/lib
  6. cp-ivx264.pc/mingw/lib/pkgconfig
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

编译ffmpeg 0.11.1

相信有耐心进行到这里的人,已经花了1-2个小时了,这是正常的速度。终于可以编译ffmpeg了.

下载源代码,http://ffmpeg.org,解压后首先配置,光这个自动配置过程也要十分钟左右。

  1. ./configure--prefix=/mingw--enable-gpl--enable-nonfree--enable-postproc--enable-avfilter--enable-w32threads--enable-runtime-cpudetect--enable-memalign-hack--enable-bzlib--enable-libfaac--enable-libgsm--enable-libmp3lame--enable-libspeex--enable-libtheora--enable-libvorbis--enable-libx264--enable-libxvid--enable-zlib--disable-debug

然后 make & make install 等着编译结束吧。本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

链接

链接静态库需要注意链接的顺序, 我的VC版本是VS2010
  1. #ifdef__cplusplus
  2. extern"C"{
  3. #endif
  4. #include<libavcodec/avcodec.h>
  5. #include<libavformat/avformat.h>
  6. #include<libavutil/avutil.h>
  7. #include<libswscale/swscale.h>
  8. #ifdef__cplusplus
  9. }
  10. #endif
  11. #pragmacomment(lib,"libgcc.a")
  12. #pragmacomment(lib,"libmingwex.a")
  13. #pragmacomment(lib,"libcoldname.a")
  14. #pragmacomment(lib,"libavcodec.a")
  15. #pragmacomment(lib,"libavformat.a")
  16. #pragmacomment(lib,"libavutil.a")
  17. #pragmacomment(lib,"libswscale.a")
  18. #pragmacomment(lib,"libz.a")
  19. #pragmacomment(lib,"libfaac.a")
  20. #pragmacomment(lib,"libgsm.a")
  21. #pragmacomment(lib,"libmp3lame.a")
  22. #pragmacomment(lib,"libogg.a")
  23. #pragmacomment(lib,"libspeex.a")
  24. #pragmacomment(lib,"libtheora.a")
  25. #pragmacomment(lib,"libvorbis.a")
  26. #pragmacomment(lib,"libvorbisenc.a")
  27. #pragmacomment(lib,"libx264.a")
  28. #pragmacomment(lib,"xvidcore.a")
  29. #pragmacomment(lib,"wsock32.lib")
  30. #pragmacomment(lib,"vfw32.lib")

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics