下载webrtc M114版本源码只能使用外网googlesource源-命令版
声网、国内源都不行,只能外网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