隨著音視頻技術的不斷普及,Google推出的 WebRTC 越來越受到大家的喜歡。
現在很多直播產品都是基于WebRTC 進行二次開發做出來的。
WebRTC是提供了一整套處理實時音視頻的開源庫。
它包括了音視頻處理(采集,編解碼,前處理,后處理,渲染),數據傳輸(實時傳輸,流控)和業務邏輯控制。
可以說 WebRTC 的出現大大減少了做音視頻開發的難度,所以熟練掌握好這個庫對于做音視頻相關的同學就顯的特別重要了。
要想掌握 WebRTC 要過的頭一關就是如何編譯它。
WebRTC庫非常龐大,光源碼就有幾個G,所以它對開發主機的性能,網絡帶寬的要求都非常高。
另外,在Windows平臺下,它對Windows的系統版本,Visual Studio 版本也都有明確的要求,所以只要其中某一項出問題了,都可能導致失敗。
這就是為什么很多人在編譯WebRTC經常失敗的原因。
下面我們言歸正傳,介紹一下在如何在 Windows下成功編譯WebRTC.
第一、WebRTC要求是 64位機器 8G 內存,最好超過16G內存:
我實際的配置是 64位機器,4G內存,4核CPU也是沒問題的。
第二、至少 100G 磁盤空間,NTFS格式:
FAT32格式是不能工作的,因為WebRTC中有的文件大于 4G。
第三、Visual Studio 2015 Update 3 ,只能用這個版本的 VS 才能編譯成功:
VS 不需要是英文版本。
第四、操作系統是 Windows7 或更新的 英文版本:
我使用的是 Win10 英文版,注意:Windows一定要是英文版喲。
由于環境的問題經常會導致編譯失敗,所以為了方便設置環境,我使用了VirtualBox虛擬機(該虛擬機是免費的)。
相較于VMware它雖然性能稍差,但完全夠我們編譯開發WebRTC使用。所以我們也不必在虛擬機這個環節上糾結。
安裝虛擬機需要注意以下幾點:
為了更好的利用硬件,需要確認你機子的BOIS中是否打開了虛擬化選項,這對虛擬機的性能會產生很大影響;
在虛擬機上安裝完系統后,一定要安裝虛擬的增強驅動,這樣虛擬機要才能全屏顯示。不會的可去問度娘。
安裝 Visual Studio 2015 Update 3 ,可以使用免費的 Community Edition 版本。
在安裝 VS 時選擇定制(Custom Install)安裝,并選擇下面的模塊:
選擇安裝:Visual C++, 并勾選它下面的三個子目錄,這三個子目錄中包括了 MFC;
選擇安裝:通用的Windows應用程序開發工具(Universal Windows Apps Development Tools):
Tools (1.4.1) and Windows 10 SDK (10.0.14393)。
注意:必須選擇安裝 Windows 14393 SDK ,千萬不能選 15063 SDK,如果安裝了 15063 SDK,編譯就會報錯。 當然,你可以安裝多個 Windows SDK,只要它們中有 14393 SDK 就可以。
安裝 Windows 14393 SDK 時,要選擇 “Debugging Tools For Windows” 這項,以便在你的開發環境中安裝調試工具 windbg 和 cdb,這些工具會在后面測試和調試時使用。
注意:如果 Windows SDK 是通過 Visual Studio 安裝的, 則 調試 Tools 需要按下面步驟安裝:
Control Panel → Programs → Programs and Features → Select the “Windows Software Development Kit” v14393 → Change → Change → Check “Debugging Tools For Windows” → Change。
depot_tools就是一堆下載代碼,編譯等相關的工具,Google統一打包在 depot_tools中,你需將它下載到本地。
首先:將 depot_tools.zip 文件解壓。
其次:將 depot_tools 目錄地址添加到你機器的 系統環境變量 PATH 里,而不是用戶級的環境變量里。具體操作如下:Control Panel → System and Security → System → Advanced system settings
注意:必須將它放在PATH環境變量的開頭。
然后,用同樣的方法將 DEPOT_TOOLS_WIN_TOOLCHAIN 設置到你的系統環境變量里,并設置它的值為 0 ,該變量會告訴 depot_tools 使用你本地安裝的 Visual Studio 版本。
默認:depot_tools 使用 Google 內部版本。
最后:打開 cmd.exe, 運行 gclient 命令(不用帶作何參數)。
第一次運行時,gclient 將安裝 Windows 下需要的工具, 包括 msysgit 和 python。gclient 執行完后,在命令行提示符下輸入 python 將會顯示 python.bat ,這就說明 depot_tools 安裝好了。
執行下面的命令就可以獲取 WebRTC 的代碼了,也只有用這種方式,后面才能編譯通過:
mkdir webrtc-checkout
cd webrtc-checkout
fetch --nohooks webrtc
gclient sync
注意:由于 WebRTC 的代碼量非常大,所以我一般都是在晚上讓他去下載,第二天就可以用了。另外,下載代碼時需要有VPN才可以。
執行下面的命令就可以編譯WebRTC了:
$ cd src
$ gn gen out/Default
編譯成功后,執行下面的命令生成VS工程文件:
$ gn gen --ide=vs out\Default
這時,我們就可以在 src\out\Default\ 目錄下找到 all.sln 這個工程文件,到這里我們就大功告成了。
我們上面詳細介紹了編譯WebRTC的步驟,由于WebRTC本身的原因,大家在操作時一定要仔細閱讀每一步,否則都有可能導致編譯失敗。
另外,有一個關鍵點上面沒有說明:就是獲取 WebRTC 時需要 VPN 連接到 Google 才能下載代碼,大家可以自己行找找有沒有合適的 VPN。
隨著音視頻技術的不斷普及,Google推出的 WebRTC 越來越受到大家的喜歡。現在很多直播產品都是基于WebRTC 進行二次開發做出來的。
WebRTC是提供了一整套處理實時音視頻的開源庫。它包括了音視頻處理(采集,編解碼,前處理,后處理,渲染),數據傳輸(實時傳輸,流控)和業務邏輯控制。可以說 WebRTC 的出現大大減少了做音視頻開發的難度,所以熟練掌握好這個庫對于做音視頻相關的同學就顯的特別重要了。
要想掌握 WebRTC 要過的頭一關就是如何編譯它。WebRTC庫非常龐大,光源碼就有幾個G,所以它對開發主機的性能,網絡帶寬的要求都非常高。另外,在Windows平臺下,它對Windows的系統版本,Visual Studio 版本也都有明確的要求,所以只要其中某一項出問題了,都可能導致失敗。這就是為什么很多人在編譯WebRTC經常失敗的原因。
下面我們言歸正傳,介紹一下在如何在 Windows下成功編譯WebRTC的要點。
第一、WebRTC要求是 64位機器 8G 內存,最好超過16G內存。
我實際的配置是 64位機器,4G內存,4核CPU也是沒問題的。
第二、至少 100G 磁盤空間,NTFS格式。
FAT32格式是不能工作的,因為WebRTC中有的文件大于 4G。
第三、Visual Studio 2015 Update 3 ,只能用這個版本的 VS 才能編譯成功。
VS 不需要是英文版本
第四、操作系統是 Windows7 或更新的 英文版本。我使用的是 Win10 英文版。
注意,Windows一定要是英文版喲。
安裝 Visual Studio 2015 Update 3 ,可以使用免費的 Community Edition 版本。在安裝 VS 時選擇定制(Custom Install)安裝,并選擇下面的模塊:
選擇安裝 Visual C++, 并勾選它下面的三個子目錄,這三個子目錄中包括了 MFC。
選擇安裝 通用的Windows應用程序開發工具(Universal Windows Apps Development Tools)
Tools (1.4.1) and Windows 10 SDK (10.0.14393)
注意,必須選擇安裝 Windows 14393 SDK ,千萬不能選 15063 SDK,如果安裝了 15063 SDK,編譯就會報錯。 當然,你可以安裝多個 Windows SDK,只要它們中有 14393 SDK 就可以。
安裝 Windows 14393 SDK 時,要選擇 “Debugging Tools For Windows” 這項,以便在你的開發環境中安裝調試工具 windbg 和 cdb,這些工具會在后面測試和調試時使用。
注意,如果 Windows SDK 是通過 Visual Studio 安裝的, 則 調試 Tools 需要按下面步驟安裝: Control Panel → Programs → Programs and Features → Select the “Windows Software Development Kit” v14393 → Change → Change → Check “Debugging Tools For Windows” → Change.
獲取C++代碼及編譯只需要按 WebRTC官網說明進行操作即可。
http://www.jianshu.com/p/475886261388