admin管理员组

文章数量:1602045

要学习 webrtc,我们所面临的第一道难关,就是如何搞定 webrtc的源码,基于学习的目的我们选择的是windows平台.
今天我们要解决的是:不翻墙下载最新版的webrtc代码,不使用代理.

已经下载好的windows源码百度网盘链接如下:
链接:https://pan.baidu/s/1vRF-00tk41TO7_l_fcAl_Q
提取码:bzhe

目前的版本应该是最新的2021.3.15更新版本.后续我们所有的代码研究都是以此版本为准.

源码同步更新QQ群: 627152680

网上有太多适用代理的教程,以及包括声网的国内镜像下载,这二种方法,我都尝试过,四个字费时费力。

其实我们有更简单的方法

  1. 在阿里云上购买一台带ui的windows server,区域选择国外,不用翻墙.
  2. 在windows云主机上下载完webrtc的源码和对应windows的工具链后,压缩代码同时上传到百度云上,我们再到本机上拉下最新代码,用vs2019完成编译.

最终效果如下:

一:阿里云上购买windows云主机教程:

1.1 进入到阿里云控制后台,选择云服务器ECS

选择创建实例:

一定要选择按量付费,地区选择美国(硅谷)(非国内即可)

硬件配置选择: 4核4G(不要选择太低的,远程操作太过痛苦!)

选择操作系统,下图是我选择的配置,这个windows server是带UI的,硬盘40-60G之间足够用了.

(注意我们要选择英文版 英文版,中文版会python运行时可能会面临字符方面的编译问题)

进入到下一步选择带宽配置,注意一定要选择:按量付费

这个时候我们的远程主机就创建成功了,配置好账号和密码,准备进入到远程主机:

选择vcn连接:

已经进入到系统,大功告成了,打开下久违的没有见到的谷歌:

2.webrtc源码下载

在源码下载之前,有一些必须的工具我们需要安装好,自己谷歌搜索,然后下载:

必备工具:

python3

git

百度网盘

2.1在c盘下创建目录webrtc,然后下载depot_tools到webrtc目录下:

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

下载完成之后,我们需要配置环境变量,这里需要配置2个环境变量:

DEPOTTOOLSWIN_TOOLCHAIN 0 ,这个变量配置后,gclient sync会下载buildtools.

第二部需要把depot_tools的目录添加到 PATH环境变量中.

上面2个变量配置好了后,重启server,让环境变量生效.

2.2 开始下载源码:

现在我们在目录c://webrtc下,首次下载源码一定要执行一下 gclient,注意注意.

接下执行如下命令:

Mkdir webrtc-checkout

Cd webrtc-checkout

Fetch –nohooks webrtc

这个时候会开始下载webrtc的源码,同时会在third_party里面下载各种依赖的工具集,主要是这个third_party特别大,由于我们是按带宽付费,这个时间大概会在15分钟左右下完.

下完之后,我们接着再执行:

gclient sync

这个过程会有点长,我卡在了95%大约半小时的时间,视我们选择的硬件的内存和CPU而定,整个代码下载完后,我们这边再压缩上传到百度网盘, 然后下载到本地。

3.本地环境下编译webrtc工程.

本地环境下需要安装vs2019,安装过程中请千万注意一定要 选择安装 win10 sdk, 安装过程很简单,大家自行安装.

然后在程序面板-卸载中,找到win10 sdk.


vs2019以及win10 sdk安装好后,接下来我们需要进行一些环境变量的配置 :

大家参照上面的进行配置,具体的路径根据自己的位置确定.

配置成功后:

进入到src的目录下,执行如下命令:

gn gen --ide=vs2019 out/test

在test目录下,会生成all.sln,用vs2019打开:

紧接着执行:
ninja -C out/Default

我们就可以在out/Default的obj目录下得到全静态库文件webrtc.lib,在我们的 vs工程中直接使用即可!

特别注意要修改一个地方, 否则运行 peerconnection.ext和peerconnecionserver.exe会有问题!!

一定要把:

RTC_DCHECK_RUN_ON(&capture_checker_); 给注释掉,不然运行时会闪退.

其余 linux平台,如上,mac没有云的主机,很麻烦,没什么好的办法.

本文标签: 不需工程Windowswebrtc