type
status
date
slug
summary
tags
category
icon
password
WebRTC编译库一览
平台 | 目标平台 | 编译产物 |
Android | armeabi-v7a、 arm64-v8a | .so静态库 |
iOS | armv7、 arm64 | .a静态库 |
Windows | x86 、x64 | .lib静态库 |
Linux | 多种平台 | .a静态库 |
系统要求
- 系统要求
- 具有至少8GB RAM 的 64 位 Intel 机器。强烈建议超过 16GB。
- NTFS 格式的硬盘驱动器上至少有 100GB 的可用磁盘空间。FAT32 不起作用,因为某些 Git 包文件大于 4GB。
- 适当版本的 Visual Studio,如下所述。
- Windows 10 或更新版本。
Windows 设置
这里谷歌要求最好是VS2022(>17.0.0)
必须勾选如下几项:
- Desktop development with C++组件中10.0.20348.0或10.0.22000.0(win11)以上的Win10 SDK(如果没看到该版本,去左侧Individual components那里勾选)
- 使用
C++ 进行桌面开发
组件
MFC/ATL 支持
子组件
安装完VS2022后,必须安装SDK调试工具。打开控制面板->程序与功能,找到刚才安装的最新Windows Software Development Kit(比如10.0.20348.0),鼠标右键->修改
勾选Debugging Tools For Windows,然后点击修改。
下载源码
- 获取depot_tools
git clone <https://chromium.googlesource.com/chromium/tools/depot_tools.git
> 将depot_tools的路径加入系统环境变量Path
,然后移到最前面(避免已安装的python与git造成影响)。
- 获取WebRTC源码 需要设置代理。
打开windows命令行
如果一切顺利的话,这里应该可以看到已经在开始下载各部分内容。
如果有其他问题,可以仔细看下报错内容然后根据相应内容解决。
可参考:
- 1.cipd.bat中修改powershell 为pwsd powershell5 跟powershell7 的执行程序变了
- 2.修改depottools中 /.cipd_bin/3.8/bin/Lib/subprocess.py
735 __init__中
shell=True
这一部分需要等待很久,代理及网速良好的情况下短则1-2小时,长则数小时仍没有明显变化,内容较多的部分是在
../src/third_party
(12.5G左右),所以最好保持电脑在下载期间不休眠或者关机
如果有部分内容获取较慢或者持续卡住的话,可以ctrl + c
,然后 gclient sync
继续同步。开始编译
打开x64 nativve tools vs2022
生成VS工程文件,之前有些准备步骤需要在命令行输入,确定编译环境。
本机编译需要的命令
- -ide=vs 使用gn ninja 生成vs工程 编译好之后如果在vs中无法直接运行而且报错 找不到Ninja.exe 将ninja.exe 放到用户变量中
编译时需要使用clang的编译器
如果 Visual Studio 应用没配置 Clang 编译器,链接这个 webrtc.lib,生成工程文件时需要配置如下参数:
还需要禁用webrtc内部使用的stdcxx库(这一部分编译有点困难,经常报错)
如果需要添加ffmpeg_H264则必须打开clang编译器
//ffmpeg_h264支持功能
is_debug=false
use_custom_libcxx=false
是否使用内置的libcxx作为默认的c++标准库
rtc_include_tests=false
is_component_build=false
是否使用动态运行库 false表示使用静态运行期库 Release版本对应MT,Debug版本对应MTD
symbol_level=0
裁剪包
proprietary_codecs=true
H264
rtc_use_h264=true
是否使用H264。注意Windows平台编码使用OpenH264,解码使用ffmpeg
ffmpeg_branding=\\"Chrome\\"
ffmpeg的分支名,采用Chrome的分支
is_clang=true
use_lld=false
treat_warnings_as_errors=false
错误点1
5414版本可能会报这个错误,按照错误提示修改一下就行。
修改源码的std::towupper 为::towupper
错误点2
build/toolchain/win/tool_wrapper.py
提示unicode utf8错误 在对应的文件内将utf8字样修改为gbk
就可以在
out/vs2022_m109_x64_release_ffmpeg_h264
下面找到VS工程文件了。引用WebRTC库
WebRTC编译后会在src\out\Default\obj目录下生成整个WebRTC工程的静态库:webrtc.lib,就这个是完整的包,如果只想编译部分也是可以的。