天天看點

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

一. 安裝并配置msys2

這個工具主要用于模拟linux的一些指令和指令。

下載下傳位址:連結: https://pan.baidu.com/s/17_GfjHdGO21fHpH7saTIqA 提取碼: 8hbi 

下載下傳完成之後将其解壓到系統的任意目錄,比如我解壓在E:\sys\msys64目錄下:

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

然後打開VS2019的指令行工具,選擇:x86 Native Tools Command Prompt for VS 2019

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

點選打開, cd 到msys2 所在的目錄, 執行 msys2_shell.cmd -mingw32, 啟動msys2的32位運作環境:

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

 在新啟動的msys2中執行 cl, 看是否能找到cl 編譯器,如果提示:bash: cl: 未找到指令

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

則說明msys 控制台系統中并沒有共享我們本地的VS2019的運作環境,是以需要将 VS2019的運作環境添加到 msys 的控制台系統當中,目的要保證能在msys的環境中要能運作VS2019的控制台。

打開剛才msys2的解壓路徑,找到:msys2_shell.cmd 檔案,打開:

找到:

rem set MSYS2_PATH_TYPE=inherit

将其修改為:

set MSYS2_PATH_TYPE=inherit

允許msys 繼承外部的環境變量:

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

 關閉msys2的控制台視窗,然後重新在 VS2019的控制台視窗中執行:msys2_shell.cmd -mingw32

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

打開msys的控制台視窗後,再次執行cl, 若遇到亂碼則是因為字元編碼不一緻導緻的,可以右擊msys2的标題欄,依次選擇“Options”-"Text", 分别修改Locale 和 Character set 為 “zh_CN” 和 “GBK”, PS: 修改為GBK是因為VS2019使用都是GBK的字元編碼。

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

修改完畢後,回到msys的控制台,再次執行cl,這樣就不會有亂碼了:

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

 到此為止,我們就已經把msys的環境裝好了,并且已經包含了cl的指令行工具。

 二. msys2  依賴環境安裝

這裡我們主要使用pacman來安裝編譯依賴工具,pacman 有點類似于ubuntu下的apt, 或是centos下的yum。

2.1 安裝彙編工具

主要是在編譯x264和ffmepg時會用到,如果不安裝,在config中需要禁用彙編。

安裝 nasm

打開msys 控制台視窗,執行 pacman -S nasm , 注意 S 大寫

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

如果遇到亂碼,則參考上面将字元編碼修改為UTF-8試下。輸入 y, 回車

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

如果提示已有的站點無法下載下傳,則要為msys2 添加新的軟體源,跟ubuntu中添加軟體源的道理是一樣的。

為msys2添加新的軟體源的方法如下:

打開 msys2 安裝目錄下的 etc 目錄,找到 pacman.d 檔案:

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

打開 etc/pacman.d/mirrorlist.mingw32, 在開頭添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

打開 etc/pacman.d/mirrorlist.mingw64, 在開頭添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

打開  etc/pacman.d/mirrorlist.msys, 在開頭添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

然後執行 pacman -Sy 重新整理軟體名資料即可。

如果重新整理失敗,遇到下列錯誤:

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建

 則需要對簽名進行更新。msys2 官方也給出了相應的解決方案:

參考 https://www.msys2.org/news/, 依次在控制台視窗中執行下列指令:

curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig

pacman-key --verify msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig
pacman -U msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz

pacman -U --config <(echo) msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz

rm -r /etc/pacman.d/gnupg/
pacman-key --init
pacman-key --populate msys2      

來完成簽名的更新:

音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建
音視訊技術應用(1)-使用VS2019來編譯FFmpeg_環境搭建