编译WebRTC源码(2019年11月)

最近又打算调试下 WebRTC 的问题,苦于半天找不到网上可以下载的工程,打算自己编译,虽然官网可以访问了,但是源码依然无法下载,在某博客发现博主分享了SS账号,使用其进行下载。

不翻墙方法

声网和学而思都给了镜像和使用说明,不过经我在 Win 10Win 7 上测试,而且做了很多修改依然不能完全成功。不知道有没有哪位按照这种方式成功的。

下载源码

本机环境是 Win 7,已经安装 Visual Studio 2017Git,以及 Shadowsocks(SS)。

如上所述使用该博主账号在本地配置了SS翻墙(博主不愿传播,故不提供地址)。

首先设置代理配置,这里SS仅使用代理模式,不使用全局模式或者PAC模式

git config –global http.proxy 'socks5://127.0.0.1:1080'
git config –global https.proxy 'socks5://127.0.0.1:1080'
set https_proxy=socks5://127.0.0.1:1080

然后下载 chromium 的编译工具 depot_tools

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

然后将该目录加入到 Path 中,然后重新打开 CMD

不废话,经测试,可用的下载源码过程命令如下(避免各种坑)

fetch --nohooks webrtc

此时在当前目录建一个 boto.cfg 的文件,内容配置代理信息,这个配置文件的目的是下载 gs:// 协议格式的文件使用我们的代理。

[Boto]
proxy=127.0.0.1
proxy_port=1080

然后再接着运行下面的命令

set NO_AUTH_BOTO_CONFIG=boto.cfg
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
set GYP_MSVS_VERSION=2017
set GYP_GENERATORS=msvs-ninja,ninja
set GYP_MSVS_OVERRIDE_PATH=C:\VisualStudio\2017\Professional
gclient sync
git config –global –unset http.proxy
git config –global –unset https.proxy

编译源码

生成VS工程

gn gen out/Default --ide=vs2017

命令行编译命令,如

ninja -C out/Default
ninja -C out/Debug
ninja -C out/Release

这其中有个有意思的地方在于,运行上面命令可能报 Exception: dbghelp.dll not found in ...,并提示安装 Windows 10 SDK,事实上 VS2017 安装的时候肯定是按照过了,不信可以在 程序与功能 (控制面板卸载程序那)列表看到,但事实上却是没有按照 Debugging Tools。这个需要在这个对话框列表内选择 Windows Software Development Kit - Windows 10.0.xxx 那右键,记住不是 卸载,是 更改,然后选择 Repair 并勾选 Debugging Tools for Windows 即可。

等一会完成之后,在 src\out 目录下各个目录有编译成功的文件和VS工程文件。

最近的文章

VC安装SQLITE开发库

sqlite 是一个非常小巧易于使用的 SQL 数据库,并且是嵌入式的,更容易使用部署。在实际使用中有多种引用方式。 直接加入项目中使用从 sqlite3官网 下载源码压缩包 sqlite-amalgamation-3300100.zip 将其中的 .h 和 .c 通通加入到需要引用的工程中直 …

技术 继续阅读
更早的文章

FMP4不支持直播

因为在直播中,H5侧目前主要是B站的 flv.js 这个项目来做FLV的直播,但是H5原生支持MP4,而且SRS等均只输出简单的FLV视频。因此可以考虑尝试使用直接输出MP4的方法来实现,这样就可以跳过很多控制,直接原生支持,结果验证失败了。 测试前思考想要输出MP4,势必先要了解MP4的格式,然后 …

技术 继续阅读