1 几种源码下载方案对比
一共四种方法,除了云服务器没试之外把能踩的坑都踩了一遍,最后使用的是挂代理的方法,这种方法是效率最高的。
1.1 拉别人下好的代码
最快,但是遇到问题不好解决。一开始直接拉了别人的百度网盘拉下来的代码,编译报错,错误在网上搜不到,分析了半天也没解决,只能放弃。
1.2云服务器
这种方法看别人成功了,但是云服务器得买国外的就不会被墙了,而且云服务器操作不太方便,如果看代码的话都得在云服务器上面,花费略高。
1.3 国内镜像
国内都是对代码做了镜像,很多依赖库还是得挂代理,还要替换git仓库地址,操作复杂。而且操作了半天还是失败了,应该是之前用的代理服务器不靠谱,依赖不完整。
1.4 挂代理(推荐)
这种方式最省心,我用的IGuGe扩展加Clash,很稳定,一遍就成功了,IGuGe是付费的,18块钱一个月,在晚上测试的时候可以把带宽跑满,大概拉了二十分钟就拉完了,代码完整无异常。
2 源码编译环境准备
2.1 环境要求
WebRTC要求是 64位机器 8G 内存。
至少 100G 磁盘空间,NTFS格式。
用一台干净的机器来编译WebRTC,安装过python的会出现一些非常棘手的问题,安装depot_tools会安装python,把原来机子上的python删掉最好,这样能确保一遍成功。
操作系统我用的是win10,win11没试过。
安装visual studio,社区版即可,我用的是VS2022,安装路径务必选C盘。
安装win10SDK,并安装“Debugging Tools For Windows”。
2.2 代理服务器配置
在edge的扩展里搜索iGG谷歌学术助手,安装完以后登录账号打开,点击“客户端下载与订阅“。然后下载Clash Windows客户端,在Clash配置选项中,将IGG配置与订阅中的Clash订阅码粘贴到URL空白里然后点击下载就可以在客户端中使用了。节点会自动选择,不需要自己配置。
打开谷歌或者youtube测试一下,如果访问ok的话代理就设置成功了。
什么是WebRTC|WebRTC入门到精通必看|快速学会音视频通话原理|WebRTC超全资料分享FFmpeg/rtmp/hls/rtsp/SRS_哔哩哔哩_bilibili**www.bilibili.com/video/BV1rP411G7dQ/?share_source=copy_web&vd_source=1d37244df5a3adf4b92a8a5e5ed4abeb**
我的VS配置如下图所示
关于Win10SDK的版本问题,之前安装的时候只勾选了19041版本的,没有勾选18042,执行ninja命令报错unknow type name,后来看了别人的博客,把几个SDK都装了就没问题了,我把18042装上以后就不报错了,应该是SDK的版本问题,多装一些没事,装少了报的错误莫名其妙的,错一点点都编译不起来,真的是给搞怕了,比ffmpeg难编多了。
2.4 depot_tools安装
depot_tools就是一堆下载代码,编译等相关的工具,Google统一打包在 depot_tools中,你需将它下载到本地。这里需要注意,完整的depot_tools大概1个G左右,有的人给的depot_tools压缩包不完整,还需要执行gclient才能获得完整的depot_tools,执行gclient也需要代理服务器,前面我们已经配置了代理服务器,这一步我们直接从git上面拉取即可。完整的depot_tools工具安装方式如下。
1.安装git并获取depot_tools
git的配置就不解释了,在windows下面把git配置好就行了。配置完毕以后新建一个文件夹,在当前目录下执行
cmd命令行执行:
set http_proxy=127.0.0.1:xxxx;(xxxx为你的代理服务器的端口号)
set https_proxy=127.0.0.1:xxxx
git bash里执行:
export http_proxy=127.0.0.1:xxxx;
export https_proxy=127.0.0.1:xxxx
然后再执行
git clone https://**chromium.googlesource.com**/chromium/tools/depot_tools.git
depot_tools目录如下所示
将depot_tools目录添加到环境变量,并且配置DEPOTTOOLSWIN_TOOLCHAIN为0,这个变量配置后,gclient sync会下载buildtools。配置完成记得重启让环境变量生效。
3.执行一下gclient,安装Windows下所需的工具
重启完成后,在cmd中执行gclient,等待下载,挂了代理的话这一步是不会报错的,下载完成后执行一下gclient,如图所示就是成功了。
先创建一个文件夹,再执行fetch命令
mkdir webrtc-checkout cd webrtc-checkout fetch --nohooks webrtc gclient sync
执行完是这样的
代码下载完以后就开始编译源码,先cd到src文件夹中,再执行
$ cd src $ gn gen out/Default $ ninja -C out/Default
执行完ninja命令后我们就可以在 src\out\Default\ 目录下找到 all.sln 这个工程文件,到这里我们就完成编译了。
原文链接:(https://link.zhihu.com/?target=https%3A//blog.csdn.net/wugebucuo/article/details/124437234%3Fops_request_misc%3D%25257B%252522request%25255Fid%252522%25253A%252522166927777316800180633196%252522%25252C%252522scm%252522%25253A%25252220140713.130102334..%252522%25257D%26request_id%3D166927777316800180633196%26biz_id%3D0%26utm_medium%3Ddistribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-1-124437234-null-null.142%255Ev66%255Econtrol%2C201%255Ev3%255Eadd_ask%2C213%255Ev2%255Et3_esquery_v2%26utm_term%3DWebRTC%25E4%25B8%258B%25E8%25BD%25BD%25E5%2592%258C%25E7%25BC%2596%25E8%25AF%2591%26spm%3D1018.2226.3001.4187)
使用道具 举报
本版积分规则 回帖后跳转到最后一页
扫码备注:音视频论坛