原文連結
安裝MSYS2
msys2是一款跨平臺編譯套件,它模擬linux編譯環境,支援整合mingw32和mingw64,能很方便的在windows上對一些開源的linux工程進行編譯執行。
類似的跨平臺編譯套件有:msys,cygwin,mingw
優勢:
相對於 cygwin 和 msys 等環境,它支援 pacman 包管理器,這意味著你可以很方便的安裝所需要的軟體包和開發庫,而不需要自己去找原始碼編譯
支援多種編譯環境,可以很方便的整合 mingw 和 clang,自身也是基於cygwin的一個簡單開發環境,可以透過 pacman 包管理器很方便的安裝對應編譯環境的開發庫。msys2的安裝目錄結構如下:
為什麼要安裝MSYS2呢?因為ffmpeg對windows不夠友好。
點選這裡MSYS2進入官網,按如下步驟進行操作:
安裝路徑可自選:
配置
建議開啟MSYS2 MINGW64進行以下所有步驟。
如果你用的預設的MSYS2 MSYS也就是我最開始的方式也沒關係,請聽我繼續道來。
可以看到我最開始就用的MSYS2 MSYS:
執行命令pacman -S mingw-w64-x86_64-toolchain:
敲回車繼續:
接下來執行命令pacman -S base-devel:
用MSYS2 MSYS的問題在於有些包搜尋不到,導致有些命令用不了。
接下來可以看到我用MSYS2 MINGW64重新執行了之前的兩個命令:
pacman -S mingw-w64-x86_64-toolchain
pacman -S base-devel:
重新安裝過後,我們可以發現常用的linux命令都能使用了,gcc,make,ls,ar等等。
安裝pkg-config
執行命令:
pacman -S mingw-w64-x86_64-pkg-config
pacman -S mingw-w64-x86_64-zlib
安裝好後F:\msys2\mingw64\bin目錄下應該有 pkg-config.exe檔案:
如果沒有,進入:https://download.gnome.org/binaries/win32/dependencies/下載,沒有64位的,就下32位的。
解壓後在bin目錄會發現pkg-config.exe,把它解壓移到F:\msys2\mingw64\bin裡,每個人的路徑可能不一樣。
接下來安裝glib_2.24.2-2_win64.zip:https://download.gnome.org/binaries/win64/glib/2.24/
解壓後將 libglib-2.0-0.dll複製移到F:\msys2\mingw64\bin裡,每個人的路徑可能不一樣。
最後將F:\msys2\mingw64\bin新增到Path環境變數,每個人的路徑可能會不一樣。
還可以新建系統變數PKG-CONFIG-PATH,值為F:\msys2\mingw64\lib\pkgconfig,注意每個人的路徑可能會不一樣。
編譯ffmpeg
進入官網:https://www.ffmpeg.org/download.html#releases,點選下載:
解壓後我將它放在的路徑為F:\ffmpeg
接下來開啟MSYS2 MINGW64進入ffmpeg原始碼的目錄,並執行:./configure --prefix=../ffmpeg_buildout --disable-static --enable-shared --enable-version3 --disable-ffplay --enable-ffmpeg --disable-x86asm
應該會等好幾分鐘,我就是這樣。千萬不可慌張。
接下來編譯,依次執行:
make -j4
make install -j4
1
2
這兩步終端會輸出很多東西,也需要好一會,學會等待。
至此你會發現ffmpeg同級路徑會出現一個ffmpeg_builtout目錄,其裡面有如下目錄:
並且可以找到ffmpeg.exe檔案,初步斷定編譯成功。
接下來可以這麼處理,刪掉ffmpeg目錄,將ffmpeg_builtout目錄改名為ffmpeg,並將F:\ffmpeg\bin新增到環境變數Path裡,因為ffmpeg.exe在這個路徑裡。
最後就可以開啟終端執行ffmpeg -version檢視是否安裝成功啦:
至此ffmpeg編譯成功。