#### Window10下編譯最新版FFmpeg的方法步驟
平時比較多在Mac下開發,編譯ffmpeg相對比較簡單。最近放假在Window下玩玩,聽說Window編譯ffmpeg比較麻煩,自己就折騰一下看看。其實站在巨人肩上使用集成環境,也是非常簡單的。網上大部分帖子亂七八糟的。。。最后自己思考模仿Linux環境折騰一個晚上,然后總結一下步驟,其實很簡單,這里總結記錄一下,以便方便自己回顧和需要的人。
#### 準備環境,需要的環境是MinGW+MSYS,不需要依賴任何vs工具。
MinGW和MSYS工具是在同一個下載頁面的,下載鏈接如下:
[https://sourceforge.net/projects/mingw-w64/files/External binary packages (Win64 hosted)/MSYS (32-bit)/](https://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/)
>
> 在下載頁面選擇下載[MSYS-20111123.zip]([https://sourceforge.net/projects/mingw-w64/files/External](https://sourceforge.net/projects/mingw-w64/files/External)binary packages (Win64 hosted)/MSYS (32-bit)/MSYS-20111123.zip/download) 和[x86\_64-posix-seh](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z)離線安裝包。我這里以64位為準。
2. ##### 解壓配置MinGW環境
> 第一步: 先解壓x86\_64-xxx離線包,得到mingw64目錄, 這個目錄就類似于Linux小環境,里面有gcc,g++等編譯鏈接工具.
>
> 第二步: 然后再解壓MSYS-20111123.zip得到msys目錄,并且將msys目錄拷貝到第一步mingw64目錄下.
>
> 第三步: 將mingw64/bin目錄添加到Path環境變量. 到此為止類Linux環境準備完畢.
3. ##### 為FFmpeg編譯準備yasm工具和get-config工具
> 1. 如果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才能識別.
>
> 2. 準備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環境就準備好了.
4. ##### 下載最新版ffmpeg源代碼
> 下載鏈接:[https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.gz](https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.gz)
>
> 將下載好的壓縮包解壓并放在mingw64\\msys\\home, 這個home目錄就相當于Linux下的home目錄.
>
> 同時可以創建一個out目錄作為ffmpeg編譯輸出目錄,通過--prefix配置輸出目錄.
5. ##### 啟動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](https://download.csdn.net/download/yongfengnice/14015945)
- 序言
- 編解碼
- H264
- HEVC碼流解析
- H264編碼原理
- 多媒體封裝
- MP4
- 學好 MP4,讓直播更給力
- AAC
- FLV
- 流媒體協議
- RTSP
- RTCP
- RTP
- H265 RTP封包筆記
- SDP
- RTMP
- RTMP URL
- rtmp url基礎
- webrtc
- 編譯
- 最簡單的編譯webrtc方案
- Webrtc音視頻會議之Webrtc“不求甚解”
- Webrtc音視頻會議之Mesh/MCU/SFU三種架構
- 音頻傳輸之Jitter Buffer設計與實現
- Janus
- Webrtc音視頻會議之Janus編譯
- Webrtc音視頻會議之Janus源碼架構設計
- webrtc服務器-janus房間管理
- 源碼分析
- WebRTC視頻JitterBuffer詳解
- 走讀Webrtc 中的視頻JitterBuffer(一)
- 走讀webrtc 中的視頻JitterBuffer(二)
- webrtc視頻幀率控制算法機制
- 目標碼率丟幀-1
- 目標幀率丟幀-2
- 29 如何使用Medooze 實現多方視頻會議
- FFmpeg
- FFmpeg編譯
- Window10下編譯最新版FFmpeg的方法步驟
- FFMPEG靜態庫編譯
- ffmpeg實現畫中畫
- FFmpeg推流器
- ffmpeg-aac
- OpenCV
- OpenCV學習筆記——視頻的邊緣檢測
- 圖像特征點匹配(視頻質量診斷、畫面抖動檢測)
- 圖像質量診斷