网上有很多版本的ffmpeg编译指南,大部分不可用,不是链接失效,就是不符合我的应用需求。
自己整理一份留作备份:
1、 下载编译环境MinGW+Msys,地址是:http://sourceforge.net/projects/mingwbundle/files/,在这个页面上点击Download下载那个zip文件。下载完成后,直接安装,不建议修改任何默认路径(现在的电脑,C盘空间都大的很)。
MinGW和Msys以前都是分别安装的,现在可以一次性一起安装。可以在线安装,也可以离线安装。推荐离线安装,上面这个链接是用来下载离线安装包的。
2、在http://yasm.tortall.net/Download.html上下载yasm的exe文件(需要根据自己的操作系统选择是Win32.exe还Win64.exe),下载完后重命名为yasm.exe,放到MinGW安装目录的bin目录下。
如果没有这一步操作,在后面编译ffmpeg的过程中,可能会提示找不到yasm命令。ffmpeg里面的汇编加速部分的代码需要用到它,如果禁用汇编加速,会影响编译出来的编解码库的运行效率。
3、下载ffmpeg,在http://ffmpeg.org/download.html可以找到最新的版本,我下载的是http://ffmpeg.org/releases/ffmpeg-0.8.5.tar.gz。下载完成后解压到某处待命。
4、通过桌面或开始菜单的快捷方式,进入MinGW的命令行,进入ffmpeg的解压目录。
注意:切换盘符用“cd 盘符”命令,如“cd d: ”表示切换到d盘。
5、使用configure命令配置ffmpeg的编译参数。我配置的参数如下(仅供参考):
./configure --enable-shared --enable-gpl --enable-version3 --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --enable-w32threads --disable-network --enable-memalign-hack --disable-everything --enable-decoder=h264 --enable-decoder=mpeg2video --enable-parser=h264 --enable-encoder=mpeg2video --disable-debug
通过./configure --help可以查看帮助,上面的每一个参数,都可以在帮助中找到说明;
由于我仅仅需要ffmpeg用来完成MPEG2视频的编码和解码,H.264视频的解码,因此我在上面的参数中,禁用了大量我用不着的内容。一方面加快编译的速度,另外一方面编译出来的库会比较小。
6、输入make进行编译。
7、编译完成后,输入make install进行部署。
如果没有修改过msys的安装路径,那么生成的文件会部署在“C:\msys\1.0\local”目录下。
生成的动态库在“msys目录\local\bin”目录下;
链接库文件在“msys目录\local\lib”目录下的,*.dll.a为动态库需要的链接文件,*.a为纯静态库(不依赖dll);修改扩展名为.lib就可以用了。
需要的头文件在“msys目录\local\include”目录下。