Window10下編譯最新版FFmpeg的方法步驟
平時比較多在Mac下開發,編譯ffmpeg相對比較簡單。最近放假在Window下玩玩,聽說Window編譯ffmpeg比較麻煩,自己就折騰一下看看。其實站在巨人肩上使用集成環境,也是非常簡單的。網上大部分帖子亂七八糟的。。。最后自己思考模仿Linux環境折騰一個晚上,然后總結一下步驟,其實很簡單,這里總結記錄一下,以便方便自己回顧和需要的人。
-
准備環境,需要的環境是MinGW+MSYS,不需要依賴任何vs工具。
MinGW和MSYS工具是在同一個下載頁面的,下載鏈接如下:
在下載頁面選擇下載[MSYS-20111123.zip](https://sourceforge.net/projects/mingw-w64/files/External binary packages (Win64 hosted)/MSYS (32-bit)/MSYS-20111123.zip/download) 和 x86_64-posix-seh 離線安裝包。我這里以64位為准。
-
解壓配置MinGW環境
第一步: 先解壓x86_64-xxx離線包,得到mingw64目錄, 這個目錄就類似於Linux小環境,里面有gcc,g++等編譯鏈接工具.
第二步: 然后再解壓MSYS-20111123.zip得到msys目錄,並且將msys目錄拷貝到第一步mingw64目錄下.
第三步: 將mingw64/bin目錄添加到Path環境變量. 到此為止類Linux環境准備完畢.
-
為FFmpeg編譯准備yasm工具和get-config工具
- 如果ffmpeg編譯需要開啟匯編優化,是需要yasm工具支持的,默認是開啟的,所以我們需要准備yasm工具. 如果你不想准備yasm工具,可以在./configure配置時使用--disable-x86asm關閉匯編優化.
1-1. 其實准備很簡單,下載頁面http://www.tortall.net/projects/yasm/releases/ 下選擇對應版本yasm-1.3.0-win64.exe下載,然后重命名為yasm.exe放在mingw64/bin目錄下即可. 一定要重命名為yasm.exe才能識別.
- 准備get-config工具, 這個工具是編譯依賴查詢工具,不准備好像也沒啥問題,既然提示了最好也准備一下
2-1. 使用http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.26-1_win32.zip下載並解壓得到pkg-config.exe復制放在mingw64/bin目錄下即可.
2-2. 然后使用http://ftp.acc.umu.se/pub/gnome/binaries/win32/glib/2.28/glib_2.28.8-1_win32.zip下載並解壓得到libglib-2.0-0.dll(或者所有dll庫,多不礙事)也復制放在mingw64/bin目錄下,這樣get-config工具就准備完畢. 到此為止編譯ffmpeg環境就准備好了.
-
下載最新版ffmpeg源代碼
下載鏈接:https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.gz
將下載好的壓縮包解壓並放在mingw64\msys\home, 這個home目錄就相當於Linux下的home目錄.
同時可以創建一個out目錄作為ffmpeg編譯輸出目錄,通過--prefix配置輸出目錄.
-
啟動msys命令行窗口,配置編譯ffmpeg命令
雙擊mingw64\msys\msys.bat打開msys命令行窗口,這個窗口類似於Linux環境的窗口.
cd切換到/home/ffmpeg-4.3.1目錄下執行configure, make, make install編譯三部曲即可.
第一步: ./configure --arch=x86_64 --enable-shared --prefix=/home/out //64位配置--arch=x86_64
第二步: make
第三步: make install
上面只是最簡單的配置, 執行這三步,即可生成exe文件,dll動態庫,h頭文件等.
注意:是沒有生成ffplayer.exe的,ffplayer.exe依賴SDL庫,想要ffplayer.exe還得先安裝配置SDL環境.
以下是目錄結構截圖:
如果覺得上面說的啰嗦或者配置麻煩,可以直接下載我集成好的壓縮包,解壓並添加mingw64/bin到Path環境變量,然后雙擊mingw64\msys\msys.bat打開msys命令行窗口即可開始編譯工作。
下載鏈接:https://download.csdn.net/download/yongfengnice/14015945