拉取源码
WebRTC是谷歌开源的一个用于实施音视频的框架,也可以看作是一种协议。我们可以根据需要下载android、ios、web版本。 1.安装工具depot
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git;
进入bashrc设置环境变量 首先进入home目录下,然后vim ~/.bashrc
export WEBRTC_DEPOT_TOOLS=/home/mmc/zcj/depot_tools
export PATH=$PATH:$WEBRTC_DEPOT_TOOLS
保存退出后,source ~/.bashrc 2. 下载源码
fetch --nohooks webrtc_android
gclient sync
最后的同步操作gclient sync一定要做,非常重要 3.切换分支 当源码下载好之后,一般位于master分支,我们不再这个分支上编译操作,切换到git上的4183(也就是m85版本)分支上,可以使用下面代码自定义一个m85分支,把4183上拉过来。当然也可以直接checkout到4183.
git checkout -b m85 branch-heads/4183
gclient sync
# 切换到 master 分支
$ git checkout master
$ git pull origin master
$ gclient sync
# 切换回你自己的分支(有冲突的话自己解决)
$ git checkout my-branch
$ git merge master
编译
1.安装编译依赖库
./build/install-build-deps.sh
./build/install-build-deps-android.sh
在这一步我遇到比较大的问题如下,主要原因就是现在安装的库的依赖库和系统中其他库的依赖库是同一个,但是两者需要的依赖库版本不一致。参考链接: The following packages have unmet dependencies. 解决方法: 使用aptitude来管理这种dll地狱问题,aptitude在删除一个包时,会同时删除本身所依赖的包:
sudo apt-get install aptitude
sudo aptitude install libwayland-egl1-mesa
安装过程中,不接受未安装方案,接受降级方案。后面就可以根据情况选择了,我都是选择的y 2.编译arr包 这一部我并没有选择编译整个工程,可以根据实际需求决定。
./tools_webrtc/android/build_aar.py --arch arm64-v8a
编译的过程中会一直报错,开始一直魔改,后面定位问题是因为webrtc中py文件底层实现只支持python2,而我之前系统中做深度学习都是安装的python3.8,所以只需要创建一个新的虚拟环境,环境中配置python2,然后切换到这个环境中编译就没问题了.
运行
这一部其实没啥好说的,主要就是额外下载一个demo调用编译好的webrtc库,当然也可以使用官方给的demo。 第一步需要把自己编译好的arr包放在demo中对应的位置 第二步配置好相应的端口号,编译demo烧到安卓手机中 第三步打开single server demo 第四步,两台手机在同一个局域网下,进行测试
|