WebRTC源碼下載和編譯


官方文檔: http://webrtc.github.io/webrtc-org/native-code/development/

1.環境准備

1.1 安裝depot_tools

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

下載完成后,將它添加到系統的PATH中:

2. 源碼下載

2.1 下載

mkdir webrtc
fetch --nohooks webrtc

接着就是漫長的等待.
代碼拉取完成后,執行:

gclient sync

設置新分支追蹤方式(可選):

git config branch.autosetupmerge always
git config branch.autosetuprebase always

建議創建自己分支進行開發:

cd src
git checkout master
git new-branch your-branch-name

2.2 源碼更新

git checkout master
git pull origin master
gclient sync
git checkout my-branch
git merge master

3. 編譯

如果是在Linux((Ubuntu/Debian))上需要運行

./build/install-build-deps.sh

如果是windows下,需要仿照chromiu編譯設置:https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md .

默認使用ninja編譯系統.
和編譯chromium一樣,先要設置編譯參數:

#gn gen out/Default
gn gen out/Default --args='is_debug=false'

可以使用gn clean out/Default清理編譯中間產物.

編譯:

ninja -C out/Default

可以通過GN了解更多選項.

android平台請參考: http://webrtc.github.io/webrtc-org/native-code/android/ .
ios平台參考: http://webrtc.github.io/webrtc-org/native-code/ios/ .

編譯:

ninja -C out/Default

4. 應用實例

WebRTC包含了一些應實例,你可以在src/webrtc/examplessrc/talk/examples目錄下找到它們. 更高級別應用列在最前面.

Peerconnection

Peerconnection包含兩個使用WebRTC Native APIs的應用:

  • peerconnection_server是服務端應用;
  • peerconnection_client是客戶端應用(目不支持Mac/Android).

客戶端程序具簡單的語音和視頻功能.通過服務端,客戶應用可以通過由客戶端生成信令(signaling)來管一個會話(call).

peerconnection_clients之間建立p2p連

啟動peerconnection_server,你可看如下所示的運行狀態表面它正在運行:

Server listening on port 8888

啟動任意數量的peerconnection_clients,並連接服務器.客戶端UI包含一下幾個部分:

  • Connecting to a server: 當啟動應用程序時,你必須指定服務器應用運行主機(通過IP地址).一旦做到這一點,你可以按Connect或者return按鈕.
  • Select a peer: 一旦成功連接到服務器,你可以通過雙擊或者選擇對端的名字進行連接;
  • Video chat: 當成功連接到一節點,視頻聊天將顯示在整個窗口.
  • Ending chat session: 按Esc. 你將回到選擇對端節點.
  • Ending connection: 按Esc,你現在可選擇你要連接的服務器.
  • Testing peerconnection_server: 運行一個peerconnection_server實例.在你的瀏覽器中打開src/webrtc/examples/peerconnection/server/server_test.html.點擊Connect.觀察該peerconnection_server公布的連接信息。打開另一個相同頁面的tab,也連接它(使用不同的名字),現在可以在所連接的節點間交換消息.

Call App

call(currently disabled),使用Libjingle建立call應用.

Relay Server

relayserver, 為不能直接建立p2p連接的場景提供中繼.可在上面的Call應用中使用.

STUN Server

stunserver, 實現了STUN協議,提供NAT穿透.

TURN Server

turnserver, 在單元測試中使用.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM