ubuntu编译webrtc库

一. 前言

本文介绍在 ubuntu 下如何通过 webrtc 源码编译出指定版本 webrtc.lib 库(以 m94 版本为例)。

二. 编译步骤

1. 下载depot_tools工具

depot_tools 是 Google 用来管理大型项目代码(例如 WebRTC)的工具集,它包含了源码获取与同步等命令。

下载 depot_tools 工具命令如下。

cd ~ && git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

echo 'export PATH="PATH:HOME/depot_tools"' >> ~/.bashrc #如果不是放在主目录,注意修改为实际使用的路径

source ~/.bashrc

2. 下载webrtc源码

执行如下命令下载 webrtc 代码,如果 gclient sync 因为网络原因中断,重复执行 gclient sync 直到成功。

mkdir webrtc

cd webrtc

fetch --nohooks webrtc

gclient sync

3. 下载编译所需依赖

cd src

./build/install-build-deps.sh

4. 编译webrtc库

本文以 m94 版本为例进行说明,webrtc 版本说明可以查看该链接。

m94 版本对应的分支是 branch-heads/4606。

由于 m94 分支构建需要使用 vpython 工具,而最新的 depot_tools 目录下已经没有 vpython,因此首先进入 depot_tools 目录切换到旧分支(可以使用 chrome/4147)。

再进入 webrtc 代码目录的 src 子目录,执行如下命令切换到 m94 分支

git checkout -b m94 branch-heads/4606

接下来执行 gclient sync 同步所需依赖。

gn gen out/m94 --args="is_debug=true is_clang=false use_custom_libcxx=false rtc_include_tests=false treat_warnings_as_errors=false rtc_use_h264=false target_cpu=\"x64\" use_lld=false enable_iterator_debugging=true"

ninja -C out/m94

三. 如何使用

编译完成后在 out/m94/obj 目录下可以看到 libwebrtc.a,但使用时还需要头文件,我们还需要手动提取 webrtc 源码的头文件。

进入 webrtc 代码主目录,执行如下命令。

rsync -amv --include=*/ --include=*.h --include=*.hpp --exclude=* src/ include/

执行完成后可以在 webrtc 主目录看到 include 目录,即为 webrtc 库对应的头文件。

相关推荐
福大大架构师每日一题5 天前
webrtc-rs/webrtc v0.21.0发布:API 可扩展、异步集成、确定性时间、ICE 重启与 SCTP 全面修复
webrtc
智联视频超融合平台5 天前
WebRTC + AI:实时音视频中嵌入神经网络推理的架构设计
人工智能·webrtc·实时音视频
P1Browser6 天前
换了 IP 还是被关联:WebRTC 泄露本地 IP 的三种触发路径
网络协议·tcp/ip·webrtc
福大大架构师每日一题7 天前
pion/webrtc v4.2.22 最新发布:TCP mux 写缓冲区调整至 4 MB,补齐缺失媒体方向处理
tcp/ip·webrtc·媒体
程序员老陆16 天前
WHIP 与 WHEP:WebRTC 直播的标准化入口与出口
ffmpeg·音视频·webrtc·whip·whep
平行云24 天前
国产GPU云渲染适配实战:驱动兼容、编码调优与多路并发
unity·ue5·webrtc·webgl·实时云渲染·云桌面·像素流送
隐擎fox25 天前
网络传输安全剖析:WebRTC 本地真实 IP 泄漏机制(STUN/TURN)与 Python 防护检测实战
网络·网络协议·tcp/ip·安全·webrtc
福大大架构师每日一题1 个月前
mediamtx v1.21.0 发布:Media-over-QUIC、RTSP、HLS、WebRTC 与安全能力全面升级
安全·webrtc
脏脏a1 个月前
Neko 自托管实战:WebRTC 远程浏览器、多用户权限与公网访问
webrtc
cuijiecheng20181 个月前
从 6.49 秒到约 1.9 秒:RK3588上的WebRTC 实时流启动速度优化记录
webrtc