1.准备
1.1VS2019
安装进入官网下载安装vs2019。
注意:VS2017最好是安装在默认目录C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise,原因后面说明。
安装WIN10 SDK还需要安装Debugging Tools,安装步骤为 控制面板 → 程序 → 程序和功能 → 选中“Windows Software Development Kit” → 变更 → Change → 勾选 “Debugging Tools For Windows” → Change。如下:
1.2Python
编译过程中需要,用2.7.9版本,需添加到Path环境变量。
注意:如果系统还装了Python3,要把Python2的环境变量放在python3的环境变量之前,这样编译过程中系统才会选择Python2解释器。
1.3Microsoft DirectX SDK (June 2010)
下载地址:http://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe
如果安装出错,先把该卸载的高版本卸载掉再安装。
1.4depot_tools
depot_tools是包含下载、编译的相关工具,需要先下载并配置它,才能继续后面的操作。
下载地址:https://storage.googleapis.com/chrome-infra/depot_tools.zip
下载后解压,并将解压好的depot_tools目录添加到path系统环境变量中,如下图所示:
2.WebRTC源码获取
2.1设置环境变量
#不更新depot_tools
DEPOT_TOOLS_UPDATE=0
#编译时使用本机VS工具链
DEPOT_TOOLS_WIN_TOOLCHAIN=0
#指定VS版本
GYP_MSVS_VERSION = 2019
#vs安装路径,替换成自己的
GYP_MSVS_OVERRIDE_PATH = C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
#使用ninja编译
GYP_GENERATORS=msvs-ninja,ninja
因需要访问国外资源这部分可能需要自己想办法实现
2.2语言设置
在cmd窗口中输入命令之前,系统locale最好设置成English,目的是消除源码获取过程中可能出现的“UnicodeDecodeError: 'gbk' codec can't decode byte 0x9d in position 6304: illegal multibyte sequence”编解码错误。
在控制面板里面的区域(Region)即,控制面板->区域->管理->更改系统区域设置
选择英语美国,勾选Beta版使用Unicode UTF-8,然后重启。
改好后重启机器。编译完源码后可以再改回中文,改完后需要再次重启。
2.3使用depot_tools获取WebRTC源码
启动cmd窗口,可以在D盘根目录下创建个webrtc-checkout放置源码。
在cmd中进入webrtc-checkout文件夹
输入指定令:
#获取代码,这一步会花点时间,代理给力的话也很快
fetch --nohooks webrtc
# 当过程中断时(包括上一步的失败),我们可以使用该命令恢复并继续
gclient sync
获取源码过程中,可能会出现“File name too long”的错误,在git bash里面,输入如下命令可解决:
git config --global core.longpaths true
下载的文件总大小大概10G,包括源码以及一些测试的音视频文件资源等等。
3.编译
使用命令行进入webrtc-checkout\src目录后执行指令:
gn gen out/Default --ide=vs2019 #生成VS2019解决方案
ninja -C out/Default #开始编译
VS2019最好是安装在默认目录C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise,或者只改个盘符,否则即使设置了GYP_MSYS_VERSION环境变量,还是会提示错误:Exception:Visual Studio Version 2019(from GYP_MSYS_VERSION)not found,这就是建议把VS2019安装在默认目录C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise的目的。
产生这个错误的原因是webrtc-checkout\src\build\vs_toolchain.py中语句已经把部分VS的安装路径写成固定的了。
安装完之后,即可顺利编译了。
4.测试
成功编译后,在webrtc-checkout\src\out\Default中会有一些可执行的小例子,比如peerconnection_server.exe和peerconnection_client.exe,可以用它俩进行简单的测试。
局域网运行PeerConnection 例子需要用到两台电脑,并要求两台电脑都配置有摄像头和麦克风。测试步骤如下:
1. 电脑A运行peerconnection_server.exe。
2. 电脑A运行peerconnection_client.exe, Server一栏输入 localhost,点击Connect。
3. 电脑B运行peerconnection_client.exe,Server一栏输入电脑A的局域网ip地址,点击Connect。
4. 电脑A或电脑B双击列表框出现的第一个选项, 建立音视频通信。
5. 任意一方可以在中途按ESC键退出音视频通信。