1.下载、安装depot_tools

depot_tools是包含下载、编译的相关工具,我们要先下载并安装它,才能继续后面的操作。

下载地址:点这里

将depot_tools.zip解压,并将解压后的depot_tools目录路径加入到系统环境变量中的path里面去。

DEPOT_TOOLS_WIN_TOOLCHAIN作为一个变量,也加入到环境变量中,它的值设置为0,这是为了告诉脚本,在编译的时候使用我们本机的vs环境。

现在,打开cmd,先对代理进行设置(在此之前,你要先保证你的代理正在工作,是有效的),否则后面可能会出错,设置的方法为:

在cmd中输入下面两行命令:

set http_proxy=127.0.0.1:1080
set https_proxy=127.0.0.1:1080

注意,根据代理工具的不同,上面的地址和端口可能是不同的,需要根据你的实际情况进行修改。大部分情况下都为127.0.0.1:1080

设置完代理后,请不要关闭cmd窗口,后续操作仍要在该窗口进行,否则仍需要重新设置代理。

在cmd中输入gclient命令,脚本会进行更新,并完成相关工具的安装。

2.使用depot_tools获取webrtc的源码

先设置一些环境变量:

set GYP_MSVS_VERSION = 2017 # 指定vs版本
set GYP_MSVS_OVERRIDE_PATH = C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional  #vs安装路径,替换成自己的
set GYP_GENERATORS=msvs-ninja,ninja

在cmd中输入以下命令:

mkdir webrtc-checkout #这是创建一个目录,创建之前最好cd到合适的地方
cd webrtc-checkout  # 进入到我们刚刚创建的目录中
fetch --nohooks webrtc  # 获取代码
gclient sync  # 当过程中断时,我们可以使用该命令恢复并继续
  • 我们git co -t M68 就下载了M68分支


请注意,代码比较大,有几个G,请确认你的代理还有足够的流量。另外,下载的时间也比较长,请耐心等待,代理方式最好选全局,不然可能会出现一些意外情况。

下载过程中如果下载不全或者缺失gn.exe啥的,一定是自己代理软件问题,可以修改成全局再gclient sync一次即可

当代码获取完成后,cd到源码目录,继续输入指令来生成解决方案。

cd src
gn gen out/Default --ide=vs2017

然后,输入指令进行编译:

ninja -C out/Default

在windows上vs2017 编译webrtc的更多相关文章

  1. ios – 存档期间不存在Xcode环境变量

    我有一个具有TestFlight构建方案的iOS应用程序.在此方案中,我在“运行”选项卡中设置了一个称为TESTFLIGHT的环境变量,值为1.此外,在构建方案的“配置文件”选项卡中,它已选中“使用RUn操作的参数和变量”选项,并在列表中看到相应的EV.当从Xcode运行应用程序时,这可以正常工作,但是当我在存储设备上运行应用程序时,环境变量TESTFLIGHT不存在.我的问题是有一个我在这里缺少的选项/方案选项卡?

  2. 在iOS上构建WebRtc

    msg/discuss-webrtc/VJg-fk2-i_0/dtG200DOzsgJ但步骤不明确.某人可以总结这些步骤,以便将来对所有人都有用吗?解决方法我写了一篇详细的博客文章,其中包含有关如何构建WebRTC示例iOS应用程序的所有说明,以及如何在iOS模拟器或实际的iOS设备上运行它.你可以takealookhere阅读细节,这是一个非常漫长的过程.

  3. ios – 可以在iPhone上使用Web RTC,如果是这样,怎么样?

    可以在iPhone上使用WebRTC,如果是这样,怎么样?我们如何在iPhone中集成WebRTC.解决方法有一些适用于iOS的基于WebRTC的SDK.看看这篇文章:http://bloggeek.me/webrtc-fit-ios/

  4. Ubantu下配置swift开发环境

    恭喜.现在可以直接在这里写入临时的swift代码,注意是临时的.如果想要写swift,需要新建一个文件,比如touchhello.swift.用vim打开,在里面写入HelloWorld的代码,保存退出.编译上面的代码源文件,打开终端,找到源代码所在目录,输入命令swiftchello.swift,即可编译,如果没有出现错误,则说明编译成功.运行上面的hello,编译之后会出现一个新文件hello;这是ubantu的可执行文件,直接输入./hello即可执行

  5. QuickBlox WebRtc VideoChat Android

    几天我正在研究quickblox.i让对手观点在我的观点下面,如this.它工作正常,但是当我保持像skype这样的视图时:–对手视图在全屏幕上,我的视图位于对手视图的右上角,它只渲染一个最终渲染的视图.我在quickblox网站上看了quickbloxwebrtc示例.我看到了该示例中的代码,但它包含了一些会议对话,其中包含一些复杂的循环视图编码,对我来说,单个一对一的谈话是必需的,任何人都可以

  6. Android Webrtc记录来自其他同行的流的视频

    我正在开发一个webrtc视频通话Android应用程序,它工作得很好,我需要录制其他对等(remoteVideoStream)和myStream(localVideoStream)的视频,并将其转换为某些可保存的格式,如mp4或任何其他格式,我真的在寻找它,但却无法弄清楚如何完成这项工作.我已经阅读了有关VideoFileRenderer的内容,我尝试将其添加到我的代码中以保存视频但是也无法使用

  7. DataChannel.state()始终返回CONNECTING webRTC Android

    我有一个Android应用程序作为运行在Node.js服务器上的WebRTC服务器的客户端运行.该应用程序的当前状态是我可以进行视频通话,但无法在DataChannel上发送消息.这是我的Android应用程序的完整代码.Home.javapeerEventHandler.java欢迎任何意见和建议;)解决方法WebRTC数据通道现在通过SCTP工作,因此您可以删除RtpDataChannels约

  8. android – 错误:程序“/ndk-build.cmd”在PATH中找不到

    按钮在出现的框中,选择名称字段并键入NDKROOT.在您解压缩AndroidNDK的路径中的值类型的字段中.点击“应用”,完成,对依赖NDK的任何其他项目进行此操作.

  9. android – 使用AppRTC与自定义服务器

    我已经成功构建了AppRTCforAndroid,我可以使视频通话提供演示应用程序的地址(https://apprtc.appspot.com/?r=XXXXXXXX)我的问题是,如何使这个应用程序与自定义WebRTC服务器或另一个WebRTC应用程序(例如https://talky.io/)配合使用我有点困惑如何实现这一点.我也遵循教程HERE,我可以在桌面浏览器之间拨打电话,但我不知道如何从A

  10. Vue配置环境变量的正确打开方式

    这篇文章主要为大家介绍了Vue配置环境变量,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

随机推荐

  1. static – 在页面之间共享数据的最佳实践

    我想知道在UWP的页面之间发送像’selectedItem’等变量的最佳做法是什么?创建一个每个页面都知道的静态全局变量类是一个好主意吗?

  2. .net – 为Windows窗体控件提供百分比宽度/高度

    WindowsForm开发的新手,但在Web开发方面经验丰富.有没有办法为Windows窗体控件指定百分比宽度/高度,以便在用户调整窗口大小时扩展/缩小?当窗口调整大小时,可以编写代码来改变控件的宽度/高度,但我希望有更好的方法,比如在HTML/CSS中.在那儿?

  3. 使用Windows Azure查询表存储数据

    我需要使用特定帐户吗?>将应用程序部署到Azure服务后,如何查询数据?GoogleAppEngine有一个数据查看器/查询工具,Azure有类似的东西吗?>您可以看到的sqlExpressintance仅在开发结构中,并且一旦您表示没有等效,所以请小心使用它.>您可以尝试使用Linqpad查询表格.看看JamieThomson的thispost.

  4. windows – SetupDiGetClassDevs是否与文档中的设备实例ID一起使用?

    有没有更好的方法可以使用DBT_DEVICEARRIVAL事件中的数据获取设备的更多信息?您似乎必须指定DIGCF_ALLCLASSES标志以查找与给定设备实例ID匹配的所有类,或者指定ClassGuid并使用DIGCF_DEFAULT标志.这对我有用:带输出:

  5. Windows Live ID是OpenID提供商吗?

    不,WindowsLiveID不是OpenID提供商.他们使用专有协议.自从他们的“测试版”期结束以来,他们从未宣布计划继续它.

  6. 如果我在代码中进行了更改,是否需要重新安装Windows服务?

    我写了一个Windows服务并安装它.现在我对代码进行了一些更改并重新构建了解决方案.我还应该重新安装服务吗?不,只需停止它,替换文件,然后重新启动它.

  7. 带有双引号的字符串回显使用Windows批处理输出文件

    我正在尝试使用Windows批处理文件重写配置文件.我循环遍历文件的行并查找我想要用指定的新行替换的行.我有一个’函数’将行写入文件问题是%Text%是一个嵌入双引号的字符串.然后失败了.可能还有其他角色也会导致失败.如何才能使用配置文件中的所有文本?尝试将所有“在文本中替换为^”.^是转义字符,因此“将被视为常规字符你可以尝试以下方法:其他可能导致错误的字符是:

  8. .net – 将控制台应用程序转换为服务?

    我正在寻找不同的优势/劣势,将我们长期使用的控制台应用程序转换为Windows服务.我们为ActiveMQ使用了一个叫做java服务包装器的东西,我相信人们告诉我你可以用它包装任何东西.这并不是说你应该用它包装任何东西;我们遇到了这个问题.控制台应用程序是一个.NET控制台应用程序,默认情况下会将大量信息记录到控制台,尽管这是可配置的.任何推荐?我们应该在VisualStudio中将其重建为服务吗?我使用“-install”/“-uninstall”开关执行此操作.例如,seehere.

  9. windows – 捕获外部程序的STDOUT和STDERR *同时*它正在执行(Ruby)

    哦,我在Windows上:-(实际上,它比我想象的要简单,这看起来很完美:…是的,它适用于Windows!

  10. windows – 当我试图批量打印变量时,为什么我得到“Echo is on”

    我想要执行一个简单的批处理文件脚本:当我在XP中运行时,它给了我预期的输出,但是当我在Vista或Windows7中运行它时,我在尝试打印值时得到“EchoisOn”.以下是程序的输出:摆脱集合表达式中的空格.等号(=)的两侧可以并且应该没有空格BTW:我通常在@echo关闭的情况下启动所有批处理文件,并以@echo结束它们,所以我可以避免将代码与批处理文件的输出混合.它只是使您的批处理文件输出更好,更清洁.

返回
顶部