音视频直播技术--Windows下编译WebRTC
前言
随着音视频技术的不断普及,Google推出的 WebRTC 越来越受到大家的喜欢。现在很多直播产品都是基于WebRTC 进行二次开发做出来的。
WebRTC是提供了一整套处理实时音视频的开源库。它包括了音视频处理(采集,编解码,前处理,后处理,渲染),数据传输(实时传输,流控)和业务逻辑控制。可以说 WebRTC 的出现大大减少了做音视频开发的难度,所以熟练掌握好这个库对于做音视频相关的同学就显的特别重要了。
要想掌握 WebRTC 要过的头一关就是如何编译它。WebRTC库非常庞大,光源码就有几个G,所以它对开发主机的性能,网络带宽的要求都非常高。另外,在Windows平台下,它对Windows的系统版本,Visual Studio 版本也都有明确的要求,所以只要其中某一项出问题了,都可能导致失败。这就是为什么很多人在编译WebRTC经常失败的原因。
下面我们言归正传,介绍一下在如何在 Windows下成功编译WebRTC.
主机及系统配置
第一、WebRTC要求是 64位机器 8G 内存,最好超过16G内存。
我实际的配置是 64位机器,4G内存,4核CPU也是没问题的。
第二、至少 100G 磁盘空间,NTFS格式。
FAT32格式是不能工作的,因为WebRTC中有的文件大于 4G。
第三、Visual Studio 2015 Update 3 ,只能用这个版本的 VS 才能编译成功。
VS 不需要是英文版本
第四、操作系统是 Windows7 或更新的 英文版本。我使用的是 Win10 英文版。
注意,Windows一定要是英文版哟。
安装虚拟机(可选)
由于环境的问题经常会导致编译失败,所以为了方便设置环境,我使用了VirtualBox虚拟机(该虚拟机是免费的)。相较于VMware它虽然性能稍差,但完全够我们编译开发WebRTC使用。所以我们也不必在虚拟机这个环节上纠结。
安装虚拟机需要注意以下几点:
-
为了更好的利用硬件,需要确认你机子的BOIS中是否打开了虚拟化选项,这对虚拟机的性能会产生很大影响。
-
在虚拟机上安装完系统后,一定要安装虚拟的增强驱动,这样虚拟机要才能全屏显示。不会的可去问度娘。
安装 Visual Stuido 注意事项
安装 Visual Studio 2015 Update 3 ,可以使用免费的 Community Edition 版本。在安装 VS 时选择定制(Custom Install)安装,并选择下面的模块:
- 选择安装 Visual C++, 并勾选它下面的三个子目录,这三个子目录中包括了 MFC。
- 选择安装 通用的Windows应用程序开发工具(Universal Windows Apps Development Tools)
Tools (1.4.1) and Windows 10 SDK (10.0.14393)
注意,必须选择安装 Windows 14393 SDK ,千万不能选 15063 SDK,如果安装了 15063 SDK,编译就会报错。 当然,你可以安装多个 Windows SDK,只要它们中有 14393 SDK 就可以。
安装 Windows 14393 SDK 时,要选择 “Debugging Tools For Windows” 这项,以便在你的开发环境中安装调试工具 windbg 和 cdb,这些工具会在后面测试和调试时使用。
注意,如果 Windows SDK 是通过 Visual Studio 安装的, 则 调试 Tools 需要按下面步骤安装: Control Panel → Programs → Programs and Features → Select the “Windows Software Development Kit” v14393 → Change → Change → Check “Debugging Tools For Windows” → Change.
安装 depot_tools
depot_tools就是一堆下载代码,编译等相关的工具,Google统一打包在 depot_tools中,你需将它下载到本地。
首先,将 depot_tools.zip 文件解压。
其次,将 depot_tools 目录地址添加到你机器的 系统环境变量 PATH 里,而不是用户级的环境变量里。具体操作如下:Control Panel → System and Security → System → Advanced system settings
注意,必须将它放在PATH环境变量的开头。
然后,用同样的方法将 DEPOT_TOOLS_WIN_TOOLCHAIN 设置到你的系统环境变量里,并设置它的值为 0 ,该变量会告诉 depot_tools 使用你本地安装的 Visual Studio 版本。
默认,depot_tools 使用 Google 内部版本。
最后,打开 cmd.exe, 运行 gclient 命令(不用带作何参数)。第一次运行时,gclient 将安装 Windows 下需要的工具, 包括 msysgit 和 python。gclient 执行完后,在命令行提示符下输入 python 将会显示 python.bat ,这就说明 depot_tools 安装好了。
获取 WebRTC 代码
执行下面的命令就可以获取 WebRTC 的代码了,也只有用这种方式,后面才能编译通过。
1. mkdir webrtc-checkout
2. cd webrtc-checkout
3. fetch --nohooks webrtc
4. gclient sync
- 注意,由于 WebRTC 的代码量非常大,所以我一般都是在晚上让他去下载,第二天就可以用了。
- 另外,下载代码时需要有VPN才可以。
编译及生成工程文件
执行下面的命令就可以编译WebRTC了。
$ cd src
$ gn gen out/Default
编译成功后,执行下面的命令生成VS工程文件
$ gn gen --ide=vs out\Default
这时,我们就可以在 src\out\Default\ 目录下找到 all.sln 这个工程文件,到这里我们就大功告成了。
小结
我们上面详细介绍了编译WebRTC的步骤,由于WebRTC本身的原因,大家在操作时一定要仔细阅读每一步,否则都有可能导致编译失败。
另外,有一个关键点上面没有说明,就是获取 WebRTC 时需要 VPN 连接到 Google 才能下载代码,大家可以自己行找找有没有合适的 VPN。
如有任何问题可以 QQ 或 微信 联系我:21424406
谢谢!
微信公众号