安裝編譯ffmpeg

雾枫發表於2024-06-29

原文連結

安裝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編譯成功。

相關文章