微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Windows 10 Visutal Studio 2019 下编译webrtc

在音频领域中打滚多年,最近开始接触到webrtc,在网上看到了很多的关于webrtc的资料,资料很多也很杂乱,可见webrtc的内容非常的多,工程巨大。webrtc作为音频界的佼佼者,包含着音频领域里的大部分知识,相当于一部百科全书,而且非常的使用,各个端都有覆盖到,相当全面。从摄像头,桌面捕获的接口,再到编码解码,P2p的传输,都是目前顶级的代码。为了在Windows上使用,也为了能够理解和熟悉webrtc的深层逻辑,这是在Windows平台上编译,webrtc的编译也非常的通用,比如在Windows上编译,可先生成vistual studio的工程,大家都知道vistual studio那可是IDE的一哥,非常的好用,应用性非常的广。只要我们能构建出vistual studio的工程,那么我们就可以单步的进行代码的调试,在宏大的工程,我们都可以慢慢的吃透他。代码面前,没有秘密。

重点,webrtc好用,但是代码太多,编译起来也有点费劲,认真的看好每一步,才不会走弯路。

本文在windows 10 下进行编译,注意windows 的账号不要带有中文,不然会出现各种各种各样不明白的问题。

1.Visutal Studio 的准备

Windows下,Visutal Studio是最好用的编译器,这里用的是vistual studio 2019,不同的编译器版本,后面编译的命令有所不同。下载一个Visutal Studio install ,安装vistual studio2019,安装的过程我们就不详细说明了,记住要勾线 使用 c++ 的桌面开发和windows kit 要选择10.0.19041 版本的为了不必要的麻烦,请把他直接安装在c盘下。

安装vs2019

安装完VS2019后,必须安装SDK调试工具。打开控制面板->程序与功能,找到刚才安装的最新Windows Software Development Kit,鼠标右键->change。

安装SDK调试工具

勾选Debugging Tools For Windows,然后点击change。

勾选Debugging Tools For Windows

在这个过程中基本都不会出现什么问题,因为我们不需要梯子,webrtc之所以编译会出现这么的多问题,基本上都是跟梯子有很大的关系。

也就是下面需要准好要梯子了,用的最多的是 ss 的端口配置为1080.

2.准备depot_tools

google 写了很多的工具,编译的工具也自己写了一套,这一套工具大部分都是用python写的,里面包含gclient、gcl、gn和ninja等工具,为了平台的通用性,连代码git的获取,都包含在命令中,所以很多东西都跟以前的不太一样。

下载depot_tools然后解压到某个目录,比我的解压到E盘根目录。接着将该depot_tools目录的路径加到系统环境变量Path里,然后把该路径移到最前面(避免已安装的python与git造成影响)。

depot_tools安装

3.gclient 准备

这里一定要有梯子,没梯子面谈了,比如准备好ss 把端口号配置在1080上。

管理员身份运行 cmd命令,设置代理:

git config --global http.proxy 127.0.0.1:1080
git config --global https.proxy 127.0.0.1:1080
netsh winhttp set proxy 127.0.0.1:1080
set HTTP_PROXY=127.0.0.1:1080
set HTTPS_PROXY=127.0.0.1:1080

后面需要取消的话:

git config --global --unset https.proxy
netsh winhttp  reset  proxy

接着执行gclient命令,安装编译需要用到的一些工具:在cmd 命令行窗口,输入gclient指令。(如果上一步代理设置的有问题,会导致gclient的执行失败)

gclient

这个可能会因为网络的问题,一直出现问题,怎么能判断gclient安装成功了呢,直到出现下面的界面。如果这一步没有成功,接下去也没什么意义了。

gclient安装

4.拉取webrtc相关代码

这时候,代理一定要开着:

mkdir webrtc-source
cd webrtc-source
fetch --nohooks webrtc
gclient sync

gclient命令

如果这个步骤有问题出现基本上是跟代理有关系。经过漫长的等待,同步下来的代码,整个的文件夹尺寸超过了10G。

文件夹大小

继续执行 gclient sync

执行gclient sync

指到显示已经同步完成。

看下webrtc版本号情况:

git branch -r

在这里插入图片描述


切换到某个分支下,这里切换到比较经典的m79分支:

git checkout branch-heads/m79

同步代码

gclient sync

5.生成工程并编译

gn生成vs2019工程文件时需要这两个环境变量,其中vs2009_install指定的路径是vs2019的安装路径

set vs2019_install=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
set DEPOT_TOOLS_WIN_TOOLCHAIN=0

进入src 目录

编译x64 平台

gn gen out/Debug -ide=vs "--args=is_debug=true rtc_include_tests=false is_clang=false use_lld=false enable_iterator_debugging=true target_cpu=\"x64\""

这时候,在Default目录下,已经生成了vs的工程目录,用vs打开all工程

image

all

现在可以使用vs进行编译,也可以用命令

ninja -C out/Default

在拉取代码的过程中,如果有问题,可以来找我拿代码

6.HelloWorld测试

使用ninja -C out/Default 编译完代码以后,在out/Default 目录下生成了很多的例子,最基础的,我们把它称为HelloWorld的初始代码peerconnection_client.exepeerconnection_server.exe,大家可简单的看看这两个程序的代码一个称为客服端,一个称为信令服务器。本地测试,准备两台带有摄像头的电脑,其中一台开启信令服务器,同时开启客户端,客户端连接到本台服务器上。另外一台只开启客服端,连接到第一台ip上。

信令服务器:

信令服务器

信令服务器上显示已经有一个客户端连接到服务器了。

信令服务器

连接

发现有一台配对的电脑,可以直接点击进去,就能看到对方的画面了。

原文地址:https://www.jb51.cc/wenti/3286305.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐