文章目录
WebRTC介绍
WebRTC 是一种开源项目,旨在为 Web 浏览器和移动应用程序提供实时通信(Real-Time Communication)的能力,包括音频、视频和数据传输。它是由 Google 在2011年开源发布的,现在是一个由 W3C 和 IETF(Internet Engineering Task Force)标准化的技术。
WebRTC 提供了一组 API 和协议,使开发者能够在 Web 应用程序中实现点对点(Peer-to-Peer)的实时通信功能,而无需使用第三方插件或浏览器扩展。主要的功能包括:
-
音视频通信:WebRTC 允许在浏览器之间进行音频和视频通话,支持实时的音频和视频流传输。
-
数据通信:除了音视频流,WebRTC 还支持实时的数据传输,可以用于传输文件、聊天消息等。
-
NAT 穿透:WebRTC 使用了一系列技术来克服网络地址转换(NAT)和防火墙的限制,以便在不同设备之间建立直接的点对点连接。
-
安全性:WebRTC 提供了端到端的加密机制,确保通信内容的机密性和完整性。
-
跨平台兼容性:WebRTC 不仅可以在桌面浏览器上运行,还可以在移动设备上进行实时通信,实现了跨平台的兼容性。
WebRTC 的主要组成部分包括:RTCPeerConnection(用于建立点对点连接)、RTCDataChannel(用于实现数据通道)、getUserMedia(用于获取本地音视频流)、RTCStats(用于收集连接的统计信息)等。通过这些 API 和协议,开发者可以构建出各种基于 WebRTC 的实时通信应用,如视频会议、在线游戏、远程教育等。
官网: https://webrtc.org
开源地址: https://webrtc.googlesource.com
官方源码: https://webrtc.googlesource.com/src/+/refs/heads/main/docs/native-code/
环境配置
由于访问的都是Google的服务, 所以需要开启VPN
设置临时代理
开启VPN后,在终端设置临时代理,否则可能出现访问慢的情况
# export http_proxy=http://vpn ip:端口
export http_proxy=http://127.0.0.1:7890
# export https_proxy=http://vpn ip:端口
export https_proxy=http://127.0.0.1:7890
# export all_proxy=http://vpn ip:端口
export all_proxy=http://127.0.0.1:7890
验证设置结果
curl www.google.com
出现html信息, 代表设置有效
取消临时代理
unset http_proxy
unset https_proxy
unset all_proxy
安装 depot_tools
下载源码的时候,要用到 depot_tools 工具包,这是 Chromium 官方推荐的工具包,具备下载、同步、编译、上传代码等功能.
下载WebRTC源码前需要配置好
克隆depot_tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
配置坏境变量
echo "export PATH=$PWD/depot_tools:$PATH" > ~/.bash_profile
source $HOME/.bash_profile
echo "export PATH=$PWD/depot_tools:$PATH" > ~/.zshrc
source ~/.zshrc
检测配置是否成功
echo $PATH
fetch --help
安装 ninja
GN 是一个为 Ninja 生成构建文件的元构建系统。Ninja 是一个小型构建系统,特点是构建速度快。
在执行编译前,需要配置好编译的参数和环境,生产出构建文件。
官方资料
GN:https://gn.googlesource.com/gn/+/main/README.md
Ninja:https://ninja-build.org/
安装ninja
git clone git://github.com/martine/ninja.git
cd ninja/
./bootstrap.py
配置环境
sudo cp ninja /usr/local/bin/
sudo chmod a+rx /usr/local/bin/ninja
验证配置结果
ninja --version
gn