首先推荐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批处理设置环境变量
- 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.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/解压后:
- cdzlib-1.2.7/
- make-fwin32/Makefile.gcc
- cp-ivzlib1.dll/mingw/bin
- cp-ivzconf.hzlib.h/mingw/include
- cp-ivlibz.a/mingw/lib
本文地址: http://blog.csdn.net/wangjia184/article/details/79311642.libgsm1.0.13-3
下载源代码,http://libgsm.sourcearchive.com/,解压后:
编译到一半的时候出现fchmod 和fchown 的编译错误,不管它,继续执行:
- mkdir/mingw/include/gsm
- cpinc/gsm.h/mingw/include/gsm
- cplib/libgsm.a/mingw/lib
本文地址: http://blog.csdn.net/wangjia184/article/details/79311643.LAME 3.99.5
下载源代码,
http://sourceforge.net/projects/lame/files/lame/, 解压后:
- ./configure--prefix=/mingw--enable-expopt=full
- make
- makeinstall
本文地址: http://blog.csdn.net/wangjia184/article/details/79311644. LIBOGG 1.3.0下载源代码,http://xiph.org/downloads/,解压后:
- ./configure--prefix=/mingw
- make
- makeinstall
本文地址: http://blog.csdn.net/wangjia184/article/details/79311645. LIBVorbis 1.3.3
下载源代码,http://xiph.org/downloads/,解压后:
- ./configure--prefix=/mingw
- make
- makeinstall
本文地址: http://blog.csdn.net/wangjia184/article/details/79311646. LIBSpeex 1.2rc1
下载源代码,http://xiph.org/downloads/,解压后:
- ./configure--prefix=/mingw
- make
- makeinstall
本文地址: http://blog.csdn.net/wangjia184/article/details/79311647. LIBTheora1.1.1
下载源代码,http://xiph.org/downloads/,解压后:
- ./configure--prefix=/mingw
- make
- makeinstall
本文地址: http://blog.csdn.net/wangjia184/article/details/79311648. 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)
执行:
- ./configure--prefix=/mingw
- make
- makeinstall
本文地址: http://blog.csdn.net/wangjia184/article/details/79311649. xvidcore1.3.2
下载源代码,http://www.xvid.org,解压后:
- cdxvidcore/build/generic
- ./configure--prefix=/mingw
执行到这里后,搜索
xvidcore/build/generic 目录下面所有文件中的
-mno-cygwin 这个选项, 这个选项已经不被GCC支持,全部删除后继续。
- make
- makeinstall
- cp-iv\=build/xvidcore.dll.a/mingw/lib/libxvidcore.dll.a
本文地址: http://blog.csdn.net/wangjia184/article/details/793116410. x264snapshot-20120830-2245
下载源代码,http://www.videolan.org/developers/x264.html,解压后:
- configure--prefix=/mingw--enable-win32thread--extra-cflags="-DX264_VERSION=20100422"
- make
- makeinstall
- cp-ivx264.hx264_config.h/mingw/include
- cp-ivlibx264.a/mingw/lib
- cp-ivx264.pc/mingw/lib/pkgconfig
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164编译ffmpeg 0.11.1
相信有耐心进行到这里的人,已经花了1-2个小时了,这是正常的速度。终于可以编译ffmpeg了.
下载源代码,
http://ffmpeg.org,解压后首先配置,光这个自动配置过程也要十分钟左右。
- ./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
- #ifdef__cplusplus
- extern"C"{
- #endif
- #include<libavcodec/avcodec.h>
- #include<libavformat/avformat.h>
- #include<libavutil/avutil.h>
- #include<libswscale/swscale.h>
- #ifdef__cplusplus
- }
- #endif
- #pragmacomment(lib,"libgcc.a")
- #pragmacomment(lib,"libmingwex.a")
- #pragmacomment(lib,"libcoldname.a")
- #pragmacomment(lib,"libavcodec.a")
- #pragmacomment(lib,"libavformat.a")
- #pragmacomment(lib,"libavutil.a")
- #pragmacomment(lib,"libswscale.a")
- #pragmacomment(lib,"libz.a")
- #pragmacomment(lib,"libfaac.a")
- #pragmacomment(lib,"libgsm.a")
- #pragmacomment(lib,"libmp3lame.a")
- #pragmacomment(lib,"libogg.a")
- #pragmacomment(lib,"libspeex.a")
- #pragmacomment(lib,"libtheora.a")
- #pragmacomment(lib,"libvorbis.a")
- #pragmacomment(lib,"libvorbisenc.a")
- #pragmacomment(lib,"libx264.a")
- #pragmacomment(lib,"xvidcore.a")
- #pragmacomment(lib,"wsock32.lib")
- #pragmacomment(lib,"vfw32.lib")
分享到:
相关推荐
windows下基于MinGW编译ffmpeg之_初级篇_中级篇
OpenSSL,版本1.0.1e,使用MinGW编译,静态库
cryptopp crypto++ 8.2(2020.3最新版)在 MinGW_32 编译的静态库。源文件在visual studio下编译没有问题,但没有提供MinGW_32的编译环境,需要修改部分源代码才能编译通过
详细介绍了编译ffmpeg的步骤,且对用到的各软件的版本都有说明,亲测可用
Qt6.22 Mingw64静态编译
cryptopp crypto++ 8.2(2020.3最新版)在 MinGW_64 编译的静态库。源文件在visual studio下编译没有问题,但没有提供MinGW_64的编译环境,需要修改部分源代码才能编译通过
windows下使用MinGW+msys编译ffmpeg文档资料,在WINDOWS编译成功.
window下搭mingw环境,mingw下编译ffmpeg都比较麻烦,参考文档又旧又杂,本文档采用的方法简单有效,可以很快实现编译。
Qt官方开发工具只提供了动态编译版本,生成的dll文件比较多,程序占用空间也比较大,而利用静态库进行编译就可以编译出...所以我在此分享一下Qt5.6.3在windows下编译静态库的方法,并介绍了静态库在Qt中的使用方法。
Windows下已编译好的ffmpeg库,包含头文件、lib文件以及dll文件,可用MinGW链接。
2014年4月22日最新的Windows下使用MinGW编译ffmpeg的教程,同时讲述了编译x265库的方法。 说明文档下载:http://download.csdn.net/detail/luofl1992/7232837
使用mingw4.9.2编译后的zlib-1.2.5,包含头文件和.a文件
windows下使用MinGW+msys编译ffmpeg.pdf
mingw的静态编译版,不需要dll了!
cryptopp crypto++ 5.6.5在 MinGW_64 编译的静态库。源文件在visual studio下编译没有问题,但没有提供MinGW_64 的编译环境,需要修改部分源代码才能编译通过
详细讲述了windows下使用MinGW编译ffmpeg+x265编解码的过程。有问题可以到我的主页反馈。windows xp和win8下进行过测试,xp下无误运行。
MinGW 环境下 使用 Qt 编译 FFMPEG
在 windows 下使用 Qt5.12.12 自带的编译器 mingw730_64 进行编译,包含 bin, cmake, include, lib, share 五个目录,可以直接在 Qt 环境中引用。 因为 grpc 编译比较麻烦,且依赖项较多,故而分享一下编译后的版本...
选择Qt来做工具的UI,但是因为安装的是mingw版本的Qt,之前在VS中使用的lib静态库这一下就派不上用场了,网上搜索到可以用工具把 lib 文件转换成 .a 文件,但是自己尝试后没有生成成功,加之这种转换也有各种局限性...
MinGW 4.4.2 静态编译版,相对MinGW 4.4.1,添加了iconv库。