由于众所周知的原因,需要先解决防火墙问题,我用的locovpn(http://locovpn.ltd/)
安装depot tool
git clonehttps://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=`pwd`/depot_tools:"$PATH" //将fetch、gclient等命令加入环境变量。
下载代码
fetch --nohooks webrtc_android //下载android版本
gclient sync -v //fetch或者gclient中途失败退出可再次运行gclientsync续传
注:下载代码大概需要几个小时,大小有16g。webrtc本身代码并不大,但是依赖的库比较大,主要是third_party比较多。
安装编译工具
在下载的目录下执行
src/build/install-build-deps.sh
src/build/install-build-deps-android.sh
编译
//编译arm32位版本
gn gen out/arm--args='target_os="android" target_cpu="arm”’
ninja -C out/arm
//编译arm64位版本
gn gen out/arm64--args='target_os="android" target_cpu="arm64”’
ninja -C out/arm64
注:默认没有把ffmpeg和openh264编译进去,这样在android上不能用h264软编解码。如果需要开启,修改src/webrtc/webrtc.gni文件,修改rtc_use_h264 =true,然后再重新执行编译命令(gn gen xxx和ninja xxx)
webrtc.gni中两个变量定义:
proprietary_codecs在src/build/config/features.gni中定义,一般为false。
build_with_chromium在src/build_overrides/build.gni中定义为false
欢迎关注微信公众号 videocodec