网上关于编译ffmpeg的帖子不少,我也尝试了不少次,可是不少都过不了,一部分缘由是版本问题,还有就是有的路劲没说的太明白致使的,通过一天的摸索,最终编译好了,下面把编译方式写下来,但愿对看到帖子的人有帮助,特别感谢:http://www.cnblogs.com/zzugyl/p/3186170.html。php
特别注意:路径千万别弄错了,不然ffplay.exe可能编译不出来html
一、准备工做:windows
在干活以前,先把下面五个软件下载下来。网络
1)MinGW-MSYS Bundle http://sourceforge.net/projects/mingwbundle/网站
2) SDL http://www.libsdl.org/download-1.2.php.net
3)yasm http://yasm.tortall.net/Download.htmlhtm
4)FFmpeg http://www.ffmpeg.org/download.htmlblog
5)pthreadgc2.dll http://www.dll-files.com/dllindex/dll-files.shtml?pthreadgc2 get
二、安装MinGW-MSYS Bundle软件源码
网上99%的方法都是先安装mingw,再经过网络下载的方法来安装mingw和msys软件。安装好以后,还须要经过烦琐的配置,来搭建编译环境。sourceforge开源平台给你们带来了福音,MinGW-MSYS Bundle软件同时包含了MinGW和MSYS,不须要链接网络进行安装,而且包含了最新的核心组件和库文件。
按照软件默认的安装向导,一路Next,把软件安装好。我是把软件装在了C盘。
三、安装SDL
到上文列出的SDL官方网站地址,下载SDL源码包。咱下载SDL最新的源码包SDL-1.2.15.tar.gz。
到ffmpeg网站,下在ffmpeg源码包,咱下的是最新的版本ffmpeg-1.2.1.tar.gz
把ffmpeg解压缩到C:\msys\1.0\ffmpeg-1.2.1\ffmpeg-1.2.1\ 目录,再把SDL解压缩到C:\msys\1.0\ffmpeg-1.2.1\ffmpeg-1.2.1\SDL-1.2.15目录。
进入SDL目录,分别执行
./configure --prefix=/usr
make
make install
完成SDL的安装。
SDL编译完成以后,生成的bin文件、include文件、lib文件存放在C:\msys\1.0\local\SDL目录下。
经过下面命令导入SDL环境变量.
export PATH="$PATH:/usr/local/SDL/bin:/usr/local/SDL/include/SDL:/usr/local/lib"
不然,在执行ffmpeg configure时,SDL support项显示为no.(注:mingw默认根目录对应与windows下的C:\msys\1.0\目录,能够经过echo $PATH查看当前的系统路径)
四、安装yasm
到yasm官方网站,下载最新的1.2.0版本的yasm源码包Source .tar.gz。
解压到C:\msys\1.0\ffmpeg-1.2.1\yasm-1.2.0目录。
进入yasm目录,分别执行:
./configure --prefix=/usr/local/yasm
make
make install
并经过下面命令导入yasm环境变量。
export PATH="$PATH:/usr/local/yasm/bin"
五、安装ffmpeg
进入ffmpeg代码目录C:\msys\1.0\ffmpeg-1.2.1\ffmpeg-1.2.1\, 分别执行下面命令:
./configure --enable-shared --disable-static --enable-memalign-hack
make
make install
编译完成后,在C:\MinGW\msys\1.0的bin、include和lib文件夹下能够看到编译结果。
make install 以后,ffplay.exe 、ffmpeg.exe等可执行程序安装到C:\MinGW\msys\1.0\bin路径下。
执行ffplay后效果: