声网、国内源都不行,只能外网googlesource源!!!
二、创建 Ubuntu 容器(带目录挂载)
拉取Ubuntu镜像
docker pull ubuntu:22.04
创建并启动容器(挂载Windows目录到容器)
docker run -itd --name webrtc-dev -v C:\docker_File\webrtc-shared:/root/webrtc-shared --privileged ubuntu:22.04
三、容器内环境配置
- 更新系统并安装依赖
# 安装编译WebRTC所需的全部依赖
apt-get install -y \
build-essential \
git \
python3 \
ninja-build \
pkg-config \
libgtk-3-dev \
libx11-dev \
libxcomposite-dev \
libxcursor-dev \
libxdamage-dev \
libxext-dev \
libxi-dev \
libxrandr-dev \
libxrender-dev \
libxtst-dev \
libpulse-dev \
libasound2-dev \
libcups2-dev \
libdbus-1-dev \
libfontconfig1-dev \
libfreetype6-dev \
libgl1-mesa-dev \
libgles2-mesa-dev \
libglib2.0-dev \
libnss3-dev \
libpci-dev \
libudev-dev \
libv4l-dev \
libwayland-dev \
libxkbcommon-dev \
mesa-common-dev \
unzip \
zip \
curl \
wget
- 安装 depot_tools
进入共享目录
cd /root/webrtc-shared
克隆工具库
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
配置环境变量
echo "export PATH=\$PATH:/root/webrtc-shared/depot_tools" >> ~/.bashrc
source ~/.bashrc
四、下载 WebRTC M114 源码
创建工作目录
mkdir -p /root/webrtc-shared/webrtc-checkout
cd /root/webrtc-shared/webrtc-checkout
初始化源码库
fetch --nohooks webrtc
gclient sync #网中断,可多次执行
切换到M114版本(分支对应5255)
cd src
git checkout -b m114 branch-heads/5255
gclient sync --with_branch_heads --with_tags -D # 同步对应版本的依赖 缺什么文件下载什么,放置在本地指定目录,这步骤会出现有几个文件无法下载的情况
gclient runhooks # 安装额外工具
五、编译 WebRTC
1. Debug版本
生成编译配置
gn gen out/Debug --args='is_debug=true rtc_use_h264=true'
开始编译(使用全部CPU核心)
ninja -C out/Debug -j $(nproc)
2. Default 版本
gn gen out/Default --args="is_debug=true enable_testing=true"
# 只编译peerconnection_client(使用全部CPU核心加速)
ninja -C out/Default -j$(nproc)
六、GUI依赖
官网下载VcXsrv
- 启动配置X11服务:多窗口模式、Display number: 0、Disable access control
#将现有 Ubuntu 容器保存为镜像(快照)
docker commit webrtc-m114 ubuntu-webrtc-ninja:latest
- 重新启动Docker容器配置X11映射
docker run -it --name webrtc-m114-ninja-X11 -v C:\docker_File\webrtc-shared:/root/webrtc-shared -e DISPLAY={本机IP}:0.0 -v C:\docker_File\X11\.X11-unix:/tmp/.X11-unix --privileged ubuntu-webrtc-ninja
- 在容器内安装 GUI 依赖
apt-get update && apt-get install -y libgtk-3-0 libcanberra-gtk-module x11-utils
- 测试X11是否生效:
#时钟工具
apt-get install -y x11-apps #如果未安装
xclock