首页 > 音视频 > Windows平台WebRTC编译-VS2017
2019
03-14

Windows平台WebRTC编译-VS2017

在音视频领域,想深入研究的话,必定会接触WebRTC。WebRTC是一个庞大的工程,就像是音视频领域的百科全书,音视频采集,编解码,传输,渲染等一条龙在WebRTC里都有,而且WebRTC还有很多先进的音视频处理算法。由于WebRTC代码过于庞大,所以最好单步调试跟踪代码运行,这样才可以更好地学习WebRTC,否则很难有头绪。工欲善其事必先利其器,作为调试神器,宇宙第一IDE Visual Studio必不可少。所以本篇文章主要讲下如何在Windows上编译WebRTC,同时得到VS工程,然后调试。

系统要求

  • Win7及以上64位系统。
  • 内存至少8G,当然越大越好。
  • 100G磁盘空间(NTFS格式),不能是FAT32,因为会生成大于4G的文件。

Visual Studio安装

WebRTC用到了很多C++最新特性,所以编译最新WebRTC代码VS要求为2017版本。我用的是VS2017社区版。安装VS2017时选择自定义安装,必须勾选如下几项:

  • 10.0.17134 或以上的Win10 SDK,后面还要安装调试工具
  • MFC以及ATL这两项
  • 其他选项可以选择安准。如下是我的安装配置。
    Windows平台WebRTC编译-VS2017 - 第1张  | 剑痴乎

安装完VS2017后,必须安装SDK调试工具。打开控制面板->程序与功能,找到刚才安装的Windows Software Development Kit,鼠标右键->change。
Windows平台WebRTC编译-VS2017 - 第2张  | 剑痴乎

勾选Debugging Tools For Windows,然后点击change。
Windows平台WebRTC编译-VS2017 - 第3张  | 剑痴乎

depot_tools安装

下载depot_tools然后解压到某个目录,比我的解压到E盘根目录。接着将该depot_tools目录的路径加到系统环境变量Path里,然后把该路径移到最前面(避免已安装的python与git造成影响)。
Windows平台WebRTC编译-VS2017 - 第4张  | 剑痴乎

然后新建一个系统环境变量: DEPOT_TOOLS_WIN_TOOLCHAIN ,值设置为0,这是为了告诉depot_tools使用我们本机的VS进行编译。
Windows平台WebRTC编译-VS2017 - 第5张  | 剑痴乎

获取WebRTC源码

由于WebRTC的源码地址被墙了,所以需要通过代理才能得到源码。后面都是命令行操作,打开cmd窗口,由于我用的是ss代理,在cmd窗口我按如下设置:

设置当前cmd窗口代理上网,如果cmd窗口关闭了重开得重新设置。当然了,也可以设置系统全局代理上网。其他代理方法也类似。

接着执行gclient命令,安装编译需要用到的一些工具,比如git以及python。

再接着设置一些环境变量。

其中GYP_MSVS_OVERRIDE_PATH是我们安装的VS2017路径。

然后cd到要放源码的地方(要遵守前面说的磁盘要求),执行:

这一过程是个漫长的等待,要下的东西将近10G,包括源码以及一些测试的音视频文件资源等。
Windows平台WebRTC编译-VS2017 - 第6张  | 剑痴乎

使用gclient sync这一步得注意下,可能会报类似如下错误:

Unicode字符编码问题,python的一个bug,因为很多人系统语言都是中文的,所以得按如下设置,把系统区域改为英文,然后重启即可。
Windows平台WebRTC编译-VS2017 - 第7张  | 剑痴乎

编译

生成VS2017工程文件:

可以在src\out\Default\ 下得到 all.sln解决方案文件。

执行编译命令:

Windows平台WebRTC编译-VS2017 - 第8张  | 剑痴乎

用VS2017打开:
Windows平台WebRTC编译-VS2017 - 第9张  | 剑痴乎
可以看到众多工程,到此算是完成了。找到我们感兴趣的,就可以用VS单步调试,跟踪代码运行了。这么多宝贝够研究很久了。

总结

总之WebRTC在Windows上的编译很考验耐心,也很苛刻,需要电脑性能够好,有个好代理。如果嫌麻烦需要编译好的WebRTC Visual Studio工程文件,可在下面留言或邮件私信给我(防止公开链接被恶意举报屏蔽,上传很耗时的)。

参考

1. WebRTC Native code Development
2. Chromium’s build instructions for Windows

最后编辑:
作者:Jeff
Avatar
管理员——代码为剑,如痴如醉

10 Responses to Windows平台WebRTC编译-VS2017

  1. Avatar jih488 says:
    Google Chrome 73.0.3683.86 Google Chrome 73.0.3683.86 Windows 7 x64 Edition Windows 7 x64 Edition

    博主您好!可否分享编译好的WebRTC Visual Studio工程文件?谢谢!

  2. Avatar Jeff says:
    Google Chrome 72.0.3626.121 Google Chrome 72.0.3626.121 Windows 10 x64 Edition Windows 10 x64 Edition

    好的,由于将近10G,我得切割下压缩包上传,请留下你的邮箱地址,我到时给你百度网盘地址。

  3. Avatar jih488 says:
    Google Chrome 73.0.3683.86 Google Chrome 73.0.3683.86 Windows 7 x64 Edition Windows 7 x64 Edition

    谢谢博主,已收到!

  4. Avatar iosnower says:
    Firefox 66.0 Firefox 66.0 Windows 10 x64 Edition Windows 10 x64 Edition

    博主,感谢你的分享,网盘地址也发我一份,谢谢。
    zero_hot@163.com

  5. Avatar fk says:
    Firefox 65.0 Firefox 65.0 Windows 7 x64 Edition Windows 7 x64 Edition

    博主,请也给我发一份吧,谢谢!2622733392@qq.com

  6. Avatar 昨日围城 says:
    Google Chrome 74.0.3729.169 Google Chrome 74.0.3729.169 Windows 10 x64 Edition Windows 10 x64 Edition

    博主求发,跪谢。654125664@qq.com

  7. Avatar 悠哉嗑瓜子 says:
    Google Chrome 74.0.3729.108 Google Chrome 74.0.3729.108 Windows 10 x64 Edition Windows 10 x64 Edition

    博主您好,感谢分享!编译好的WebRTC工程网盘地址能否再共享一下,有劳,灰常感谢! sky_net2006@126.com

jih488的回复 取消回复

你的email不会被公开。

This site uses Akismet to reduce spam. Learn how your comment data is processed.