一级标题
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