前言
webrtc源码下载比较复杂主要是需要科学上网,光是环境搭建估计就要劝退一拨人,这里主要是介绍可以访问外网情况下如何进行webrtc的源码下载和编译。
1 源码下载
官方源码下载地址:https://webrtc.googlesource.com/src/
注意需要进行科学上网操作先。
git clone https://webrtc.googlesource.com/src
详细开发引导文档:https://webrtc.googlesource.com/src/+/main/docs/native-code/index.md
1.1安装depot_tools:
下载depot_tools工具:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
添加环境变量,比如你的depot_tools下载的路径是:/home/webrtc_src/depot_tools
vi /etc/profile
export PATH=/home/webrtc_src/depot_tools:$PATH
source /etc/profile
确认是否安装成功:
# which fetch
/home/webrtc_src/depot_tools/fetch
depot_tools工具的使用教程:https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up
1.2 depot_tools获取代码教程
创建一个空目录:webrtc-test
cd webrtc-test
fetch chromium
工具完成fetch后,您的工作目录中应该有以下内容:
.gclient # A configuration file for you source checkout
src/ # Top-level Chromium source checkout.
如果第一次使用 linux 并获取代码,那么您需要运行:
$ cd src && ./build/install-build-deps.sh
更新代码:这将拉取 Chromium src checkout 的所有依赖项。每次更新主 src 结帐时都需要运行此命令,包括切换分支时。
$ gclient sync
1.3 webrtc源码下载
webrtc的源码大小较大下载前先确保磁盘大小足够大概30G的空间,防止下载源码flash不足,重头再来的尴尬。这个过程时间比较长,千万不要ctrl+c不然得再来一遍。可以放放风…
mkdir webrtc-checkout
cd webrtc-checkout
fetch --nohooks webrtc
网速不同有可能需要一个小时左右。
一小时以后…
代码已经下载下来,13G果然不是一点点。竟然报错了…换个虚拟机再来一遍
同步代码:
gclient sync
安装依赖库:
cd src && ./build/install-build-deps.sh
至此终于完成webrtc的所有下载和依赖安装。再看下falsh用量17G.
2 编译
Ninja是所有平台的默认构建系统。
2.1 编译选项
debug模式:生成默认编译项目,默认模式包含debug模式。
gn gen out/Default
release模式:
gn gen out/Default --args='is_debug=false'
清除项目编译内容
gn clean out/Default
2.2 编译
采用ninja编译项目,整体编译过程也比较长,一小时左右。
ninja -C out/Default
构建所有:
ninja all -C out/Default
编译完成后大小飙升到26G
编译完生成的文件在out/Default目录下如下图所示:
3 测试
对等连接服务和客户端测试:peerconnection_server,peerconnection_client测试结果并没有官方所提到的界面支持视频和音频对话,但是可以进行简单连接和断开,后续研究具体为啥无法语音视频聊天。还有其他很多单元测试,后面根据需要按需自取。