聲網、國內源都不行,只能外網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