在windows xp下编译出ffmpeg.exe[转]
[转]在windows xp下编译出ffmpeg.exe
找了好多资料,把自己的编译成功过程详细叙述,以避免后来者可以少浪费点时间。
1.安装MSys
到http://sourceforge.net/project/showfiles.php?group_id=2435下载文件:
bash-3.1-MSYS-1.0.11-tar.bz2
msysCORE-1.0.11-2007.01.19-1.tar.bz2
msysCORE-1.0.11-2007.01.19-1.tar.bz2下載鏈接:
http://sourceforge.net/project/downloading.php?group_id=2435&use_mirror=nchc&filename=msysCORE-1.0.11-2007.01.19-1.tar.bz2&39247800
bash-3.1-MSYS-1.0.11-tar.bz2下載鏈接:
http://sourceforge.net/project/downloading.php?group_id=2435&use_mirror=nchc&filename=bash-3.1-MSYS-1.0.11-1.tar.bz2&93684193
解压msysCORE-1.0.11-2007.01.19-1.tar.bz2,比如解压到D:/msys(以下内容都使用该路径描述)。
解压bash-3.1-MSYS-1.0.11-tar.bz2,产生一个名为bash-3.1的目录,在该目录下有一个子目录名为bin,其 他 的目录不需要关心。复制bin目录中的所有文件到D:/msys/bin,提示是否要覆盖sh.exe的时候,选择是。
到“D:/msys/ postinstall”目录下执行pi.bat,在出现的提示中输入n回车后,按任意键退出即可。 如果你不输入N的话就输入两次Y,最后把c:/msys/mingw 输入即可 。如果输入N的话,要打开D:/msys/etc/fstab.sample把它重命名为fstab 并用nodepad打开编辑,把c:/mingw /mingw 改成d:/msys/mingw即可。最后配置PATH,在系统的环境配置中添加d:/msys/bin。
2.安装MinGW
同样是到http://sourceforge.net/project/showfiles.php?group_id=2435下载文件:
binutils-2.17.50-20060824-1.tar.gz
gcc-core-3.4.5-20060117-1.tar.gz
gcc-g++-3.4.5-20060117-1.tar.gz
w32api-3.9.tar.gz
mingw-runtime-3.12.tar.gz
把它们全部解压到D:/msys/mingw。
或者直接下载MinGW.exe文件选最小安装即可 下载好按步骤安装,选择安装的组件最好都选上啦。不过安装目录一定要选择d:/msys/mingw 别的路径它找不到。
3.修改“msys.bat”
用 文本编辑器打开D:/msys/msys.bat, 安装微软的Visual Studio或是Visual C++。把下面一行加到msys.bat的最前面,把路径替换成机器上vcvars32.bat实际存在的路径,比如我的在“c:/Program Files/Microsoft Visual Studio .NET 2005/Vc/bin”,于是就添加:
call "c:/Program Files/Microsoft Visual Studio .NET 2005/Vc/bin/vcvars32.bat"
4.svn
http://tortoisesvn.net/downloads下载TortoiseSVN,安装好之后,在d:/ffmpeg右击,选择SVN check out,
第一行目录选择svn://svn.mplayerhq.hu/ffmpeg/trunk 然后确定。这样就得到最新的SVN。
但由于SVN只针对UNIX系统做的。所以无法GCC对最新的SVN编译。会报错:192 PR command not found.
解决方法一:不用最新的SVN版本。因为即使用了最新的MinGW5.1.exe还是有这样的错误。 windows下还是无法编译最新的SVN代码。我这有07年3月的版本是可以用的。需要的可以索要。
解决方法二:下载
coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2 Mirror |
并且解压缩出来,把bin下的内容拷贝到MSYS下,因为MSYS缺少COREUTILS所以报错 PR command not found。
改完后你会发现可以编译了,但是make的时候又出错了。怎么办呢?去sourceforge网站上
http://sourceforge.net/project/showfiles.php?group_id=2435
下载make-3.81-MSYS-1.0.11-2.tar.bz2,改名并替换掉原来的make.exe文件即可 (搜索了一天时间,提供出来免得大家走歪路!)
这样就可以用最新的SVN版本来进行编译了。
5.测试
打开msys.bat,输入cd空格/d/ffmpeg,路径变化后,然后输入./configure空格--enable-memalign-hack,回车!
如果不报错,那么再输入make.
6.第三方插件
根据以上5个步骤就已经可以得到ffmpeg.exe了,但没有加入声音,以及对其他格式支持的也不够好。
现在开始加入lame,就是声音。到http://oss.netfarm.it/mplayer-win32.php下载已经编译的mp3lame库(可以向我索要),解压出来后分别拷贝到你安装好的mingw目录下的相对目录里。在传递配置参数时要加入“--enable-libmp3lame” ,即使用以下命令配置:
./configure --enable-static --disable-shared --enable-memalign-hack --enable-libmp3lame
然后加入mp4的格式的支持:
然后加入3GP的支持:
编译的时候加上--enable-amr_nb --enable-amr_wb参数就行,根据编译系统的提示,所以我们得下载一
些编译3gp所需得文件。
http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip
解压以后把里面的文件都拷贝到libavcodec/amrwb_float
http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip
解压以后把里面的文件都拷贝到libavcodec/amr_float
cd /C/ffmpeg
./configure --enable-memalign-hack
1. 编译x264
./configure --prefix=d:/mingw
make
make install
2. 编译ffmpeg
./configure --enable-shared --disable-static --enable-memalign-hack --enable-x264 --enable-gpl --prefix=d:/ffmpeg
make
make install
make install