首先推荐 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:\Program Files (x86)\Microsoft Visual Studio 10.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

然后下载  yasm Win32 版本,将文件重命名并分别复制2份到  MinGW\bin\yasm.exe 和  MinGW\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. cd zlib-1.2.7/
  2. make -f win32/Makefile.gcc
  3. cp -iv zlib1.dll /mingw/bin
  4. cp -iv zconf.h zlib.h /mingw/include
  5. cp -iv libz.a /mingw/lib

本文地址: http://blog.csdn.net/wangjia184/article/details/7931164
2. libgsm 1.0.13-3

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

  1. cd gsm/
  2. make

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

  1. mkdir /mingw/include/gsm
  2. cp inc/gsm.h /mingw/include/gsm
  3. cp lib/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. make install

本文地址: http://blog.csdn.net/wangjia184/article/details/7931164
4. LIB OGG 1.3.0

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

  1. ./configure --prefix=/mingw
  2. make
  3. make install

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

5. LIBVorbis 1.3.3

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

  1. ./configure --prefix=/mingw
  2. make
  3. make install

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

6. LIBSpeex 1.2rc1

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

  1. ./configure --prefix=/mingw
  2. make
  3. make install

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

7. LIBTheora 1.1.1

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

  1. ./configure --prefix=/mingw
  2. make
  3. make install

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

8. FAAC 1.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. make install

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

9. xvidcore 1.3.2

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

  1. cd xvidcore/build/generic
  2. ./configure --prefix=/mingw

执行到这里后,搜索 xvidcore/build/generic 目录下面所有文件中的  -mno-cygwin 这个选项, 这个选项已经不被GCC支持,全部删除后继续。

  1. make
  2. make install
  3. cp -iv \=build/xvidcore.dll.a /mingw/lib/libxvidcore.dll.a

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

10. x264 snapshot-20120830-2245

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

  1. configure --prefix=/mingw --enable-win32thread --extra-cflags="-DX264_VERSION=20100422"
  2. make
  3. make install
  4. cp -iv x264.h x264_config.h /mingw/include
  5. cp -iv libx264.a /mingw/lib
  6. cp -iv x264.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. #pragma comment( lib, "libgcc.a")
  12. #pragma comment( lib, "libmingwex.a")
  13. #pragma comment( lib, "libcoldname.a")
  14. #pragma comment( lib, "libavcodec.a")
  15. #pragma comment( lib, "libavformat.a")
  16. #pragma comment( lib, "libavutil.a")
  17. #pragma comment( lib, "libswscale.a")
  18. #pragma comment( lib, "libz.a")
  19. #pragma comment( lib, "libfaac.a")
  20. #pragma comment( lib, "libgsm.a")
  21. #pragma comment( lib, "libmp3lame.a")
  22. #pragma comment( lib, "libogg.a")
  23. #pragma comment( lib, "libspeex.a")
  24. #pragma comment( lib, "libtheora.a")
  25. #pragma comment( lib, "libvorbis.a")
  26. #pragma comment( lib, "libvorbisenc.a")
  27. #pragma comment( lib, "libx264.a")
  28. #pragma comment( lib, "xvidcore.a")
  29. #pragma comment( lib, "wsock32.lib")
  30. #pragma comment( lib, "vfw32.lib")

MinGW下编译ffmpeg静态库给Visual C++使用相关推荐

  1. iOS架构-C/C++lame库在Mac下编译通用静态库.a库(13)

    C/C++ 有很多成熟的库,还有很多特殊功能的库,有时候iOS 平台开发一些比较前沿或者冷门的功能时,iOS并没有提供解决方案,这时候就可以研究C/C++的一些库,为我们使用.但是在Xcode编译C/ ...

  2. VC使用mingw32编译ffmpeg静态库所需文件(一),ffmpegshim.c

    VC使用mingw32编译ffmpeg静态库所需文件(一),ffmpegshim.c 哈哈,这是我从一些项目里面看到的,这些函数是ffmpeg.a缺少的函数.估计大家会用得上. 当然我移植的的项目都不 ...

  3. linux调用qt生成静态库文件下载,Centos7下编译openssl静态库与QT引用

    1.下载openssl版本:https://www.openssl.org/source/old/ 下载地址 2.我们下载版本为:openssl-1.0.2k 3.拷贝到Linux服务器任意目录 4. ...

  4. VS2017下编译Jsoncpp静态库

    1. 下载Jsoncpp源代码 1.1 网址链接: http://sourceforge.net/projects/jsoncpp/ 1.2 百度云链接: 链接:https://pan.baidu.c ...

  5. vs2017编译libass静态库,并添加到ffmpeg中去,以支持ass,subtitles滤镜

    本人写过ffmpeg为mkv封装格式的音视频文件添加内挂字幕 ,里面字幕和视频是两个独立的通道,可以将字幕从文件中剔除,添加自己的字幕. 若想字幕和视频粘在一块,无法分割,则需要ass,subtitl ...

  6. linux编译c++ 静态库,C/C++ 条件编译静态库

    ==>windows 下方法: 1.方法一:VS工程中中直接添加 1.1在VS的属性->常规->附加库目录,添上文件夹的路径:例如:lib/x64: 1.2输入的附加依赖项,添加上库 ...

  7. 开源项目:windows下使用MinGW+msys编译ffmpeg

    本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处.     FFmpeg是在Linux平台下开发的, ...

  8. windows下使用MinGW+msys编译ffmpeg

    本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处.     FFmpeg是在Linux平台下开发的, ...

  9. windows 下使用 MinGW + msys 编译 ffmpeg

    本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处.     FFmpeg是在Linux平台下开发的, ...

最新文章

  1. 负载均衡环境中和如何设置Expires和Etag
  2. UI设计培训教程分享:UI设计师的色彩使用技巧
  3. 对于非技术人员来说,闪电网络和BCH分别意味着什么?
  4. 最大子段和问题分析和总结
  5. Zabbix的聚合图形配置
  6. 360浏览器的收藏栏不见了怎么办?
  7. 最终在学校的职业发展目标
  8. Integer与int的种种比较你知道多少?[转]
  9. 移动wabAPP 开发 viewport 注意事项
  10. 工作流性能优化(敢问activiti有扩展性?)(3)
  11. modelmap前端怎么取值_【百度】前端开发岗面试题
  12. ferror,perror,cleaner
  13. 403保护网站服务器,HTML5服务器禁止访问403错误动画
  14. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_16_注解_自定义注解_元注解...
  15. 菜鸟教程学习JAVA 01
  16. drupal8 修改主题_Drupal 8主题修订版-更新和新功能
  17. python + selenium + chrome 凡人修仙小说爬取
  18. Scratch软件界面介绍
  19. ttl接地是高电平还是低电平_说明图3.12中各门电路的输出是高电平还是低电平。已知它们都是74HC系列的CMOS电路 简单的逻辑门电路 判断各门电路...
  20. 华为手机的视频剪辑功能居然这么强大,太实用啦

热门文章

  1. 【转】C# 数据流详解(FileStream、MemoryStream、NetworkStream等类)
  2. Qt开发技巧:编写.pro文件,在构建流程中加入命令行的方法
  3. 【2019牛客暑期多校训练营(第三场)- F】Planting Trees(单调队列,尺取)
  4. 【2018ACM山东省赛 - B】Bullet(二分 + 二分图匹配,匈牙利算法,卡常)
  5. 【CodeForces - 510D】Fox And Jumping(dp,stlmap,数论的性质)
  6. 【CodeForces - 508B】Anton and currency you all know (思维贪心)
  7. 【CodeForces - 270A】Fancy Fence (几何,思维,水题)
  8. 【POJ - 2376】Cleaning Shifts (贪心)
  9. 《python深度学习》代码中文注释
  10. 图解算法学习笔记(目录)