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, 在单元测试中使用.

原文地址:https://www.cnblogs.com/xl2432/p/13137531.html