火车票网站建设,建设网站的目的以及意义,观止网站建设,微信团队小程序转载网站#xff1a;https://blog.jianchihu.net/webrtc-build-vs2017.html
在音视频领域#xff0c;想深入研究的话#xff0c;必定会接触WebRTC。WebRTC是一个庞大的工程#xff0c;就像是音视频领域的百科全书#xff0c;音视频采集#xff0c;编解码#xff0c;传输…转载网站https://blog.jianchihu.net/webrtc-build-vs2017.html
在音视频领域想深入研究的话必定会接触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这两项
安装完VS2017后必须安装SDK调试工具。打开控制面板-程序与功能找到刚才安装的Windows Software Development Kit鼠标右键-change。
勾选Debugging Tools For Windows然后点击change。
depot_tools安装
下载depot_tools然后解压到某个目录比我的解压到E盘根目录。接着将该depot_tools目录的路径加到系统环境变量Path里然后把该路径移到最前面避免已安装的python与git造成影响。
然后新建一个系统环境变量 DEPOT_TOOLS_WIN_TOOLCHAIN 值设置为0这是为了告诉depot_tools使用我们本机的VS进行编译。
获取WebRTC源码
由于WebRTC的源码地址被墙了所以需要通过代理才能得到源码。后面都是命令行操作打开cmd窗口由于我用的是ss代理在cmd窗口我按如下设置 1 2 set http_proxy127.0.0.1:1080 set https_proxy127.0.0.1:1080
设置当前cmd窗口代理上网如果cmd窗口关闭了重开得重新设置。当然了也可以设置系统全局代理上网。其他代理方法也类似。如果是VPN之类非代理就不用这样设置了。
接着执行gclient命令安装编译需要用到的一些工具比如git以及python。 1 gclient
再接着设置一些环境变量。 1 2 3 set GYP_MSVS_VERSION2017 set GYP_MSVS_OVERRIDE_PATHD:\Program Files (x86)\Microsoft Visual Studio\2017\Community set GYP_GENERATORSmsvs-ninja,ninja 其中GYP_MSVS_OVERRIDE_PATH是我们安装的VS2017路径。
然后cd到要放源码的地方要遵守前面说的磁盘要求执行 1 2 3 4 mkdir webrtc-checkout cd webrtc-checkout fetch --nohooks webrtc gclient sync
这一过程是个漫长的等待要下的东西将近10G包括源码以及一些测试的音视频文件资源等。
使用gclient sync这一步得注意下可能会报类似如下错误 1 UnicodeDecodeError: ascii codec cant decode byte 0xb0 in position 1: ordinal not in range(128)
Unicode字符编码问题python的一个bug因为很多人系统语言都是中文的所以得按如下设置把系统区域改为英文然后重启即可。
编译
生成VS2017工程文件 1 2 cd src gn gen --idevs out/Default
可以在src\out\Default\ 下得到 all.sln解决方案文件。
执行编译命令 1 ninja -C out/Default 用VS2017打开 可以看到众多工程到此算是完成了。找到我们感兴趣的就可以用VS单步调试跟踪代码运行了。这么多宝贝够研究很久了。
代码更新 1 2 3 git checkout master git pull origin master gclient sync 总结
总之WebRTC在Windows上的编译很考验耐心也很苛刻需要电脑性能够好有个好代理。
参考
1. WebRTC Native code Development 2. Chromium’s build instructions for Windows