運行環境: VC2010軟件; [附:本文所用軟件安裝包:http://download.csdn.NET/detail/sinat_36666600/9705438]php
一、下載mingw-get-setup.exe [網站:https://sourceforge.net/projects/mingw/]html
安裝步驟很簡單,一直next就行。而後把basic setup中的 「1」點右鍵選擇「make for installation」所有選擇就行。最後點擊「2」中的apply changes安裝。(注:若提示錯誤框,或關閉下圖安裝框時跳出提示,且提示的大意爲有的插件沒有安裝,則選擇「Review changes」,而後選擇「apply changes」可繼續下載安裝。直到所有安裝好,沒有任何錯誤退出最好。)windows
或參考網上的教程,再也不贅述。app
二、「個人電腦」右鍵「屬性」,選擇「高級系統設置」,點擊「環境變量」。在「系統變量」框中找到「Path」,點擊「編輯」,在末尾加入代碼:「C:\mingw\bin;」。(注意末尾的分號,爲英文輸入法。根據安裝的mingw的路徑而改變位置)ide
三、用記事本的方式打開C:\mingw\msys\1.0(其中C:\mingw爲安裝mingw的位置。從這裏也能看出,安裝了mingw後自動安裝了「msys」,從而不用本身再配置msys)目錄中的msys.bat。在最頂部位置添加以下代碼:測試
call "D:\Program Files\Microsoft Visual Studio 2010\VC\bin\vcvars32.bat"網站
其中,「D:\Program Files\Microsoft Visual Studio 2010」爲軟件Microsoft Visual Studio 2010的安裝路徑,根據安裝路徑的不一樣而對應更改便可。spa
效果以下圖:.net
四、下載最新版yasm.exe [網址:http://yasm.tortall.net/Download.html] 選擇「win32.exe(for general use on 32-bit windows)」根據系統的不一樣而改變。插件
爲了減小配置環境變量的麻煩,本處直接把 yasm-1.1.0-win32.exe 文件名修改爲:yasm.exe,並放到系統目錄下:C:\WINDOWS\system32。
五、下載最新版本的ffmpeg[網站:http://www.ffmpeg.org/download.html#get-sources] 解壓出來便可。
六、編譯ffmpeg:
把步驟5中的壓縮包解壓到C:\ffmpeg後。打開「C:\mingw\msys\1.0\msys.bat」文件。
輸入命令:
cd /c
cd ffmpeg
./configure --enable-memalign-hack --disable-debug
以上代碼意思爲:進入ffmpeg文件夾所在路徑「C:\ffmpeg」。而後「./configure --enable-memalign-hack」編譯ffmpeg,且「--enable-memalign-hack」必不可少!
一段時間後,顯示以下錯誤:
七、根據網站:
http://stackoverflow.com/questions/1710922/how-to-install-pkg-config-in-windows
下載相應的安裝包,而後按步驟操做:
(1)下載pkg-config_0.26-1_win32.zip
(2)解壓後把「bin」文件夾下的「pkg-config.exe」文件複製到「C:\mingw\bin」下,其他文件可刪除。(注:在別的地方下載的pkg-config壓縮文件,解壓後可能沒有pkg-config.exe文件。因此建議到此網站上下載。)
(3)下載gettext-runtime_0.18.1.1-2_win32.zip
(4)解壓後把「bin」文件夾下的「intl.dll」文件複製到「C:\mingw\bin」下,其他文件可刪除。
解壓後把「bin」文件夾下的「libglib-2.0-0.dll」文件複製到「C:\mingw\bin」下,其他文件可刪除。
最後,再次進行步驟6。發現沒有錯誤了,能夠運行。以下圖所示:
而後再進行如下兩步:
make
make install
「make」時會進行長時間的編譯,因此請耐心等待。最後「make install」安裝。所有完成後,可在ffmpeg文件目錄下發現「ffmpeg.exe」「ffprobe.exe」等文件,惟獨沒有「ffplay.exe」。在網上百度了下,緣由是沒有編譯SDL。
第二部分 —— 完整編譯:
首先,進行上面的1~5步驟,而後再進行下面的步驟:
一、在官網下載x264[網站:http://www.videolan.org/developers/x264.html]
而後解壓到以前的ffmpeg目錄下C:\ffmpeg。 而後啓動C:\mingw\msys\1.0\msys.bat。輸入命令,進入到x264目錄下:
cd /c
cd ffmpeg
cd x264
./configure --enable-shared --disable-asm
make
make install
編譯完成後,在C:\mingw\msys\1.0\local目錄下可看到bin、include和lib文件夾,都爲x264的文件。
二、下載SDL,[網站:http://www.libsdl.org/download-2.0.php] 選擇其中的「SDL2-devel-2.0.5-mingw.tar.gz (MinGW 32/64-bit)」。這是已經編譯好好的SDL文件,解壓後直接拿來用就ok了。
將i686-w64-mingw32下的lib的全部文件複製到C:\mingw\lib;
將i686-w64-mingw32下的include的全部文件複製到C:\mingw\include;
將i686-w64-mingw32下的bin的全部文件複製到C:\mingw\bin;
三、最後,編譯ffmpeg。
cd /c
cd ffmpeg
./configure --enable-shared --enable-ffplay --enable-memalign-hack --enable-gpl --enable-libx264 --extra-cflags=-Ic:/mingw/msys/1.0/local/include --extra-ldflags=-Lc:/mingw/msys/1.0/local/lib
注意:「--extra-cflags=-I」以及「--extra-ldflags=-L」後的是包含了libx264.h頭文件的目錄和相關庫,根據相應的位置而改動,若不加那兩個代碼就會有以下圖的錯誤:
耐心等待一段時間後,再:
make
make install
沒有報錯,檢查c:\ffmpeg文件,發現其中生成了「ffmpeg.exe」、「ffplay.exe」、「ffprobe.exe」等文件。
四、雙擊打開c:\ffmpeg目錄下的「ffplay.exe」,彈出以下錯誤提示:
其實這個文件就在C:\mingw\msys\1.0\local\bin目錄下。
可是打開C:\mingw\msys\1.0\local\bin目錄下的「ffplay.exe」沒有錯誤提示。將測試「h264」、「mpg」等格式的視頻直接拖入這裏面的ffplay.exe中能夠順利播放,可是沒有聲音。由於沒有加入音頻的編解碼庫。
注意事項:
-1- 經過如下代碼編譯lame-3.97時不會有問題:
./configure --disable-shared (首選)
或 ./configure --disable-static --enable-shared
make
make install
但在編譯ffmpeg時加入「--enable-libmp3lame」會報錯,以下圖:
暫時還沒找到解決辦法。
若編譯最新版的lame-3.99.5,則會出現下圖錯誤:
-2- 編譯SDL時,會出現以下錯誤:
顯示紅色框中內容時彈出2次以下圖對話框:
把編譯指令改成以下,則可編譯成功:
./configure --disable-nasm
make
make install
若編譯SDL2版本,也會報錯。因此,建議使用已經編譯好的SDL2-devel-2.0.5-mingw.tar.gz這種文件,直接複製粘貼到對應文件夾便可。