官方文檔: 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/examples
和src/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, 在單元測試中使用.