• 【网络通信 -- WebRTC】Open WebRTC Toolkit 环境搭建指南


    【网络通信 -- WebRTC】Open WebRTC Toolkit -- OWT-Server 编译安装指南

    【1】OWT Server 与 Web Demo 视频会议环境搭建

    【1.1】编译 OWT Server

    1. 安装依赖
    2. ./scripts/installDepsUnattended.sh
    3. 编译
    4. scripts/build.js -t all --check
    5. 注意若不支持硬件加速则采用如下命令
    6. scripts/build.js -t mcu --check

    【1.2】编译 owt-client-javascript

    1. npm install -g grunt-cli
    2. 进入 scripts 目录
    3. npm install
    4. grunt

    【1.3】打包 OWT Server

    scripts/pack.js -t all --install-module --app-path ${webrtc-javascript-sdk-sample-conference-dist}

    【1.4】配置 OWT Server

    1. ------------------------- 对于存在公网 IP 的场景 -------------------------
    2. 修改 webrtc_agent/agent.toml 文件中如下配置,添加公网IP配置
    3. {name = "eth0", replaced_ip_address = "公网IP"}
    4. 修改 portal/portal.toml 文件中如下配置,添加公网IP配置
    5. ip_address = "公网IP"
    6. ------------------------- 本地部署测试场景 -------------------------
    7. 修改 app 模块的 samplertcservice.js 文件 如下代码段
    8. icsREST.API.init('_service_ID_', '_service_KEY_', 'https://localhost:3000/', false);
    9. 替换其中的 _service_ID_、_service_KEY_、HTTP-API 的 Url
    10. _service_ID_、_service_KEY_ 在执行 ./bin/init-all.sh 初始化脚本时会输出如下
    11. superServiceId: {}
    12. superServiceKey: {}
    13. sampleServiceId: {}
    14. sampleServiceKey: {}
    15. 使用其中的 sampleServiceId、sampleServiceKey

    【1.5】启动 OWT Server 与测试

    1. 进入 dist 目录执行如下命令启动 OWT Server
    2. ./bin/init-all.sh
    3. 初始化时会提示是否更新 mangodb、rabbitmq 的账号信息,注意选择 no
    4. ./bin/start-all.sh
    5. 注意请单独启动 app 模块,示例中的 app 模块初始化时会查询 HTTP-API 接口,初始化房间
    6. 需要确保 HTTP-API 模块启动完毕才能启动 app 模块,否则 app 模块将无法访问 HTTP-API 接口
    7. 启动完毕后
    8. 访问 https://{服务器 IP}:3300/console/ 可以进入 OWT 控制台,其中可以新增房间并配置房间能力
    9. 访问 https://{服务器 IP}:3004 即可进入默认房间进行测试,该模式是 MCU
    10. 访问 https://{服务器 IP}:3004?forward=true 即可进入默认房间进行测试,该模式是 SFU

    问题与解决方案

    【1】depot_tools / fetch:第8行:exec:python:未找到

    1. 解决方案
    2. ln -s /usr/bin/python2.7 /usr/bin/python

    【2】编译 usrsctp 失败

    1. 解决方案
    2. 修改 installCommonDeps.sh 脚本如下
    3. ./configure --prefix=$PREFIX_DIR enable_warnings_as_errors=set

    【3】boost库相关问题

    1. 解决方案
    2. sudo apt-get install python-dev
    3. 修改 installUbuntuDeps.sh
    4. 添加如下函数
    5. install_boost(){
    6. if [ -d $LIB_DIR ]; then
    7. cd $LIB_DIR
    8. wget -c https://boostorg.jfrog.io/artifactory/main/release/1.65.0/source/boost_1_65_0.tar.bz2
    9. tar xvf boost_1_65_0.tar.bz2
    10. cd boost_1_65_0
    11. chmod +x bootstrap.sh
    12. ./bootstrap.sh
    13. ./b2 && ./b2 install --prefix=$PREFIX_DIR
    14. else
    15. mkdir -p $LIB_DIR
    16. install_boost
    17. fi
    18. }
    19. 修改 installDepUnattended.sh 如下
    20. if [[ "$OS" =~ .*centos.* ]]
    21. then
    22. . installCentOSDeps.sh
    23. if [ "$NIGHTLY" != "true" ]; then
    24. installRepo
    25. installYumDeps
    26. install_boost
    27. fi
    28. elif [[ "$OS" =~ .*ubuntu.* ]]
    29. then
    30. . installUbuntuDeps.sh
    31. if [ "$NIGHTLY" != "true" ]; then
    32. install_apt_deps
    33. install_boost
    34. fi
    35. fi

    【2】OWT Client Native 编译生成 SDK -- Android 平台

    【2.1】OWT Client Native SDK -- Android 平台编译

    1. 1. 获取 owt-client-native 代码
    2. git clone https://github.com/open-webrtc-toolkit/owt-client-native.git
    3. 将获取到的目录名改为 src
    4. 2. 在 src 同级目录中创建 .gclient 文件,内容如下
    5. solutions = [
    6. {
    7. "managed": False,
    8. "name": "src",
    9. "url": "https://github.com/open-webrtc-toolkit/owt-client-native.git@8cf4e56ff990e5d698b9b13aeb02fb7d3219233a",
    10. "custom_deps": {},
    11. "deps_file": "DEPS",
    12. "safesync_url": "",
    13. },
    14. ]
    15. target_os = ["android"]
    16. 注意,owt-client-native 在 4.2 以上版本方才支持 android,因此项目 git url 中需指明具体的提交
    17. 3. 执行 gclient sync 同步代码
    18. 4. 执行 python2 scripts/build_android.py 编译对应的 sdk 库
    19. 5. 编译完毕将得到 libwebrtc.jar 以及 arm64-v8a、armeabi-v7a、x86 平台的 libjingle_peerconnection_so.so

    【2.2】运行 owt-client-android

    1. 获取代码 git clone https://github.com/open-webrtc-toolkit/owt-client-android@9965201e05c1ac0c42d56285b0717ec5c5b69d21
    2. 将 android 平台编译得到的 owt-client-native 库拷贝到对应的 dependencies/libwebrtc 目录下
    3. 编译 owt-client-android 工程即可获得对应的 APK

    参考致谢

    本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。

    【1】OWT 安装与初步使用说明

    【2】WebRTC Toolkit(OWT)服务器用户指南 

    【3】编译和安装OWT-Server 

    【4】OWT (Open WebRTC Toolkit) 5.0 初体验与开发环境搭建 

  • 相关阅读:
    来!PyFlink 作业的多种部署模式
    glibc 2.23 源码分析 | malloc & free
    非零基础自学Java (老师:韩顺平) 第8章 面向对象编程(中级部分) 8.6 面向对象编程三大特征 && 8.7 快速入门案例
    【高效开发工具系列】PlantUML入门使用
    jvm 三 之堆与栈
    matlab中narginchk函数用法及其举例
    三、RabbitMQ消息的可靠投递
    2022年哪款超短焦投影仪性价比最高?当贝超短焦激光投影仪U1测评值得买
    Redis 要被替代了?
    《opencv学习笔记》-- 亚像素角点检测
  • 原文地址:https://blog.csdn.net/qq_27788177/article/details/132635335