網上關於編譯ffmpeg的帖子很多,我也嘗試了很多次,但是很多都過不了,一部分原因是版本問題,還有就是有的路勁沒說的太明白導致的,經過一天的摸索,最終編譯好了,下面把編譯方式寫下來,希望對看到帖子的人有幫助,特別感謝:http://www.cnblogs.com/zzugyl/p/3186170.html。
特別注意:路徑千萬別弄錯了,否則ffplay.exe可能編譯不出來
1、准備工作:
在干活之前,先把下面五個軟件下載下來。
1)MinGW-MSYS Bundle http://sourceforge.net/projects/mingwbundle/
2) SDL http://www.libsdl.org/download-1.2.php
3)yasm http://yasm.tortall.net/Download.html
4)FFmpeg http://www.ffmpeg.org/download.html
5)pthreadgc2.dll http://www.dll-files.com/dllindex/dll-files.shtml?pthreadgc2
2、安裝MinGW-MSYS Bundle軟件
網上99%的方法都是先安裝mingw,再通過網絡下載的方法來安裝mingw和msys軟件。安裝好之后,還需要通過煩瑣的配置,來搭建編譯環境。sourceforge開源平台給大家帶來了福音,MinGW-MSYS Bundle軟件同時包含了MinGW和MSYS,不需要連接網絡進行安裝,並且包含了最新的核心組件和庫文件。

按照軟件默認的安裝向導,一路Next,把軟件安裝好。我是把軟件裝在了C盤。
3、安裝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查看當前的系統路徑)
4、安裝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"
5、安裝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后效果:

