webrtc-mac编译-安卓编译-对应测试demo

一级标题

webrtc下载编译

下载webrtc资源
资源下载地址
举例mac端:
在com.unity.webrtc-2.4.0-exp.6/BuildScripts~目录复制一份build_libwebrtc_macos.sh文件为build_libwebrtc_macos_copy.sh
只保留编译:

#!/bin/bash -eu

if [ ! -e "$(pwd)/depot_tools" ]
then
  git clone --depth 1 https://chromium.googlesource.com/chromium/tools/depot_tools.git
fi

export COMMAND_DIR=$(cd $(dirname $0); pwd)
export PATH="$(pwd)/depot_tools:$PATH"
export WEBRTC_VERSION=4515
export OUTPUT_DIR="$(pwd)/out"
export ARTIFACTS_DIR="$(pwd)/artifacts"

if [ ! -e "$(pwd)/src" ]
then
  fetch --nohooks webrtc_android
  cd src
  sudo sh -c 'echo 127.0.1.1 $(hostname) >> /etc/hosts'
  sudo git config --system core.longpaths true
  git checkout "refs/remotes/branch-heads/$WEBRTC_VERSION"
  cd ..
  gclient sync -f
fi

分析上面命令可以清楚的知道git下载webrtc的源码、编译工具和对应的分支以及同步
打开终端:
//直接连外网代理,如何有连外面vpn就不需要,下面的连接是例子不能直接连改自己IP和端口
export http_proxy=http://192.168.0.122:1111 https_proxy=http://192.168.0.122:111

cd /Users/Documents/mac/com.unity.webrtc-2.4.0-exp.6/

//下载
./BuildScripts~//build_libwebrtc_macos_copy.sh

编译xcode可以运行工程:
//gn所要工具depot_tools文件夹
export PATH=“/Users/Documents/mac/com.unity.webrtc-2.4.0-exp.6/depot_tools:$PATH”

在src目录下执行:
gn gen out/mac --args=‘target_os=“mac” target_cpu=“x64” is_debug=true enable_dsyms=true rtc_use_h264=true ffmpeg_branding=“Chrome”’ --ide=xcode

可以阅读文件修改自己想要编译
/BuildScripts~//build_libwebrtc_macos.sh

图片命令解说步骤:
在这里插入图片描述
在这里插入图片描述

android编译:
1、linux环境、Ubuntu 64 位 18.04.6以上的版本(需要65G内存空间)
2、相同mac下载源码和工具方式执行./BuildScripts~//build_libwebrtc_android_copy.sh

Linux 编译Android
//服务器搭建地址
https://www.webrtcserver.cn/

安装ubuntu 18.04.6 (需要65G内存空间)

//安装docker 这个可以不要,不需要搭建服务器
//sudo apt install docker

//外网代理,有vpn不需要,这里要改自己ip和端口
export http_proxy=http://192.168.0.122:1111 https_proxy=http://192.168.0.122:1111

cd /home/com.unity.webrtc-2.4.0-exp.6/BuildScripts~

删除build_libwebrtc_android.sh文件里面 gclient sync -f fi以下的代码

//下载编译
./build_libwebrtc_android_copy.sh

//gn所要工具depot_tools文件夹
export PATH=“/Users/Documents/com.unity.webrtc-2.4.0-exp.6/depot_tools:$PATH”

//同步
gclient sync -f

//安装依赖
cd src
./build/install-build-deps.sh
./build/install-build-deps-android.sh

gn gen out/android --args=‘target_os=“android” target_cpu=“arm64” rtc_use_h264=true is_debug=true ffmpeg_branding=“Chrome” use_rtti=true rtc_include_tests=false rtc_build_examples=false is_component_build=false’

全量编译
ninja -C out/android
非全量编译
ninja -C out/android AppRTCMobile

python tools_webrtc/android/build_aar.py --output “libwebrtc.aar” --arch “armeabi-v7a” “arm64-v8a” --build-dir out/android

find . -name “*.h” -print | cpio -pd “…/artifacts/include”

webrtc服务器搭建

//安装docker ,然后点击docker https://blog.csdn.net/gongzi_9/article/details/123715480
brew install --cask --appdir=/Applications docker

mac 安装及使用docker
参照https://blog.csdn.net/qq_39208536/article/details/123357756
运行apprtc-serve:docker run --name apprtc50 -p 8080:8080 -p 8089:8089 -p 3478:3478 -p 3478:3478/udp -p 3033:3033 --expose=59000-65000 -e PUBLIC_IP=127.0.0.1 -it piasy/apprtc-server

webrtc视频通话测试

mac测试使用xcode打开all文件:
在这里插入图片描述

在这里插入图片描述

xcode 工程修改自己服务器ip也可以用其他人服务器ip:https://apprtc.webrtcserver.cn/
下面对应mac的xcode工程的三个文件的ip修改
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
谷歌浏览器搭建服务器可以直接测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

android:

//安装依赖
cd src
./build/install-build-deps.sh
./build/install-build-deps-android.sh

gn gen out/android --args=‘target_os=“android” target_cpu=“arm64” rtc_use_h264=true is_debug=true ffmpeg_branding=“Chrome” use_rtti=true rtc_include_tests=false rtc_build_examples=false is_component_build=false’

全量编译
ninja -C out/android
非全量编译
ninja -C out/android AppRTCMobile

python tools_webrtc/android/build_aar.py --output “libwebrtc.aar” --arch “armeabi-v7a” “arm64-v8a” --build-dir out/android

find . -name “*.h” -print | cpio -pd “…/artifacts/include”

配置android studio工程
使用Android Studio直接打开webrtc_android/src/examples/aarproject/,编辑app/build.gradle:删除
implementation ‘org.webrtc:google-webrtc:1.0.+’

替换为 native 步骤编译的 libwebrtc.aar

implementation fileTree(dir: ‘…/…/…/’, include: [‘libwebrtc.aar’])

修改aarproject工程的RoomParametersFetcher的代码把162行 private List<PeerConnection.IceServer> requestTurnServers(String url)方法注释和增加get方法
// connection.setDoOutput(true);
// connection.setRequestProperty(“REFERER”, “https://www.webrtcserver.cn”);
connection.setRequestMethod(“GET”);

运行工程在app设置的Room server URL https//appr.tc 改为 https://www.webrtcserver.cn

网页打开https://www.webrtcserver.cn 进入房间 app 输入网页房间号进入

下载地址
下载demo

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

baoyu45585

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值