網上關於編譯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.phpspa
3)yasm http://yasm.tortall.net/Download.html.net
4)FFmpeg http://www.ffmpeg.org/download.htmlhtm
5)pthreadgc2.dll http://www.dll-files.com/dllindex/dll-files.shtml?pthreadgc2 blog
二、安裝MinGW-MSYS Bundle軟件get
網上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後效果: