WebRTC-Mediasoup编译记录

下载相关文件

参考文档

compile_webrtc

mediasoup doc

编译webrtc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//编译工具下载
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATh="$PATH:${HOME}/depot_tools" //配置环境变量

//下载webrtc源码
mkdir webrtc_android
cd webrtc_android
git clone https://webrtc.googlesource.com/src
fetch --nohooks webrtc_android
gclient sync

//编译webrtc源码
cd src
./build/install-build-deps.sh

gn gen out/Debug --args='target_os="android" target_cpu="arm"'
// gn gen out/Release --args='is_debug=false is_component_build=false rtc_include_tests=false target_os="android" target_cpu="arm"'

autoninja -C out/Debug
//autoninja -C out/Release

对应文件输出目录:

./out/Debug/lib_java/sdk/android/libwebrtc.jar

./out/Debug/libjingle_peerconnection_so.so

上面这俩是Android需要用到的sdk

./out/Debug/lib.unstripped/libjingle_peerconnection_so.so

./out/Debug/obj/libwebrtc.a //静态链接

编译libmediasoupclient

下载代码

git clone https://github.com/versatica/libmediasoupclient

cd libmediasoupclient/

编译配置

1
2
3
cmake . -Bbuild \
-DLIBWEBRTC_INCLUDE_PATH:PATH=PATH_TO_LIBWEBRTC_SOURCES \ # src源代码目录
-DLIBWEBRTC_BINARY_PATH:PATH=PATH_TO_LIBWEBRTC_BINARY # 编译出libwebrtc.a目录

示例配置

cmake . -Bbuild -DLIBWEBRTC_INCLUDE_PATH:PATH=/home/zaze/Desktop/webrtc_android/src -DLIBWEBRTC_BINARY_PATH:PATH=/home/zaze/Desktop/webrtc_android/src/out/Debug/obj

运行命令后,再执行

1
make -C build/

./build/目录下会生成libmediasoupclient.a文件取出备用

获取libmediasoupclient sdk

基于mediasoup-client-android进行编译,注意以下关键点:

  • clone后的项目里面的mediasoup-client/deps/webrtc/lib里面的libwebrtc.a文件都是有误的,需要从https://github.com/haiyangwu/webrtc-android-build获取对应版本的文件,下载完成后替换原有的libs目录

TODO:后续替换为最新版的libmediasoupclientwebrtc


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!