目录
webrtc 源码下载和android平台依赖包编译
1、概述
2、在云端开个服务器,
3、安装depot tools和下载源码
4、编译android的aar包
4.1 添加安卓平台
4.2同步代码
4.3 进入src目录安装依赖
4.4 生成构建脚本
4.5 build aar
对于再国内的开发人员,再编译webrtc源的时候比较费劲,花费的功夫太大,要做android平台的webrtc开发,编译源码需要linux环境,一定要是Ubuntu,否则编译会报错,具体什么版本见下面,CentOs,deepin什么的就不要尝试了,编译会报错,有的说搞虚拟机,但是虚拟机实在太卡了,如果手头没有Ubuntu,可以搞一台,但是下源码比较费劲,不如开一台云务服器,具体步骤如下:
比如阿里云,具体怎么开通,网上可以查,这里不做详细说明
注意装的环境一定要是如下版本:
Ubuntu 14.04 LTS (trusty with EoL April 2022)
Ubuntu 16.04 LTS (xenial with EoL April 2024)
Ubuntu 18.04 LTS (bionic with EoL April 2028)
Ubuntu 20.04 LTS (focal with Eol April 2030)
Ubuntu 19.04 (disco)
Ubuntu 19.10 (eoan)
Debian 8 (jessie) or later
Linux(Android)/Mac(IOS):
安装git
国外:git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
国内:git clone https://source.codeaurora.org/quic/lc/chromium/tools/depot_tools
根目录
~#mkdir webrtc_checkout
~#cd webrtc_checkout
~#git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
会报错git用不了,因为ubuntu系统不会自带git,需要自己安装,回到根目录,如数如下命令装git
~#sudo apt install git
这一步可能会报错,apt用不了,需要先升个级,输入下面命令
~#apt-get update
但后继续安装,如果还是报错,杀了重进
~#sudo apt install git
安装完毕,测试下是否OK
~# git --version
git version 2.17.1
说明OK了,然后输入下面命令进入创建的目录
~# cd webrtc_checkout/
~# git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
~# mkdir webrtc-resouce
~# cd webrtc-resouce
然后开始下载源码,会报fetch没办法用,需要配置环境变量把,depot_tools的目录配置进去,
~# cd 回到根目录
~# vi .bashrc
加入如下,红色文字是depot_tools实际目录:
export PATH=/root/webrtc_checkout/depot_tools:$PATH
然后运行下面命令让配置生效
~# source .bashrc
再次进入
~# cd webrtc-checkout/webrtc-resouce
~# export GYP_DEFINES="OS=android"
~# fetch --nohooks webrtc_android
等待一端漫长的时间,一本也很快了,不像国内要n个小时,看看带宽,然后运行下面命令同步
~# gclient sync
继续等等......完成,然后进入src目录,输入下面命令,
~# ./build/install-build-deps.sh
echo "target_os = [ 'android' ]" >> .gclient
gclient sync
cd src
build/install-build-deps.sh
build/install-build-deps.sh --no-chromeos-fonts(如果上面报错,无法安装chromeos-fonts,就用这行)
build/install-build-deps-android.sh
gn gen out/Release --args='target_os="android" target_cpu="arm" ffmpeg_branding="Chrome" is_debug=false rtc_use_h264=true rtc_include_tests=false '
注:
a) 没有is_debug=false这个参数时,会生成libwebrtc.jar包
b) rtc_use_h264=true使其支持H264编码
c) rtc_include_tests=false不编译测试程序,缩短编译时间
d) 如果编译时想自定义android sdk和ndk路径,指定android_sdk_root android_ndk_root两参数的值即可
e)ffmpeg_branding="Chrome" 添加ffmpeg
tools_webrtc/android/build_aar.py --build-dir out --arch "arm64-v8a" "armeabi-v7a" --output='libwebrtc0001.aar'