webrtc Android最新源码及编译

前言

最近工作中需要使用到webrtc处理音视频,但是官方的版本都不能支持H264的硬解码播放,所以自己动手下载及编译了最新的master版本源码。

自己编译or直接下载

由于众所周知的原因,下载webrtc的源代码,需要配合科学上网,就有点麻烦了。建议可以购买海外版服务器,下载编译之后,再下载回本地环境。
这里有已经下载编译好的最新源代码(2022.11.1同步),可供大家下载,直接编译使用:

链接:https://pan.baidu.com/s/1_z5AmY5iEAYDbUqVxhnONQ
提取码:2wb3

编译步骤(Ubuntu20.04系统)

【下载安装depot_tools】

  • git 命令获取 depot_tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
  • 配置环境变量
echo "export PATH=$PWD/depot_tools:$PATH" > $HOME/.bashrc
  • 使环境变量生效
source $HOME/.bashrc
  • 检测配置是否成功
echo $PATH

【下载源码】

  • 创建下载目录
mkdir webrtc && cd webrtc
  • 获取源码(20G 左右,时间较久,1-2小时)
fetch --nohooks webrtc_android
  • 同步代码
gclient sync --nohooks

【编译】

  • 安装编译依赖
./src/build/install-build-deps.sh
./src/build/install-build-deps-android.sh
  • 设置编译参数
cd src
gn gen out/build --args='target_os="android" target_cpu="arm" is_debug=false'

/**
out/build :编译文件的存放目录,可自定义
target_os:编译目标平台
target_cpu :CPU架构平台 ,例:arm、arm64、x86、x64
is_debug :Release模式或者Debug模式
*/
  • 执行编译
ninja -C out/build
  • 主要提取文件
out/build/lib.java/sdk/android/libwebrtc.jar
out/build/libjingle_peerconnection_so.so
/** 
如果不想使用jar文件,可到以下目录获取java源码,3个目录文件都需要
webrtc/src/sdk/android/api/org/webrtc
webrtc/src/sdk/android/src/java/org/webrtc
webrtc/src/modules/audio_device/android/java/src/org/webrtc/voiceengine
*/

编译过程中出现的问题

  • Python3版本过低

若Python3.8以下,建议升级Python3版本,可参考: ubuntu升级python3.

  • 编译警告错误
Command failed because it wrote to stderr
You can often set treat_warnings_as_errors=false to not treat output as failure (useful when developing locally).

在设置编译参数时,添加忽略警告即可

gn gen out/build --args='target_os="android" target_cpu="arm" is_debug=false treat_warnings_as_errors=false'

你可能感兴趣的:(音视频处理,android,webrtc)