- 通过国内镜像源方式下载,具体参考:WebRTC 国内镜像
- 通过谷歌官方的方式下载,需要代理。
- 设置系统代理:
# Ubuntu下可以写入 ~/.bashrc 文件中,不需要代理的时候直接注释掉就行 # 其中"192.168.3.120:7890"换成自己的代理路径 export http_proxy=http://192.168.3.120:7890 export https_proxy=http://192.168.3.120:7890
- 下载"depot_tools"工具并设置环境变量
# 下载 git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git # 设置环境变量,也可以写入 ~/.bashrc 文件中 # '/path/to/'替换为depot_tools实际所在的目录 export PATH=/path/to/depot_tools:$PATH
- 下载源码
源码比较大,大约有个10几G,所以先设置下git的传输数据的缓冲区大小:
创建一个"webrtc"目录,进入该目录执行命令,下载源码所需的时间比较久😑,特别还是代理的情况下。。。git config --global http.postBuffer 20000000
fetch --nohooks webrtc
- 同步
先要设置 gclient 代理,gclient 是通过".boto"文件的方式来设置代理的。在"webrtc"目录下创建".boto"文件,写入代理内容:# 同样代理路径替换为你自己的 [Boto] proxy=192.168.3.120 proxy_port=7890
在设置环境变量:
# 设置环境变量,也可以写入 ~/.bashrc 文件中 # 路径替换为 .boto 文件的实际所在路径 export NO_AUTH_BOTO_CONFIG=/home/ds/data/temp-work/webrtc/.boto
然后同样在"webrtc"目录下执行同步命令,代理的网络不好可能会出现同步失败的情况,我一开始也是老是同步失败,后面换了个代理的节点后就可以了。
gclient sync
最后同步完成后总共大小有21G 😨
谷歌官方说明文档:https://webrtc.googlesource.com/src/+/main/docs/native-code/development/
- 编译
进入到源码目录(webrtc/src)下,执行以下命令# "out/Default" 为自定义目录 gn gen out/Default ninja -C out/Default
其它编译命令:
# 清理 gn clean out/Default/ # 列出 out/Default/ 目录中当前配置的所有构建参数和它们的当前值 gn args --list out/Default/ # 列出某一具体的构建参数的值,例如列出'is_debug'的值 gn args out/Default/ --list=is_debug