开放式 WebRTC 工具包媒体服务器
OWT 的媒体服务器提供基于 WebRTC 的高效视频会议和流媒体服务。它可以将一个 WebRTC 流扩展到许多终端。同时,它还能实现媒体流的媒体分析功能。它的特点是:
- 分布式、可扩展、可靠的 SFU+MCU 服务器。
- 在英特尔®酷睿™和英特尔®至强®处理器上实现高性能 VP8、VP9、H.264 和 HEVC 实时转码。
- 支持广泛的流媒体协议,包括 WebRTC、RTSP、RTMP、HLS、MPEG-DASH。
- 高效混合高清视频流,以节省移动设备上的带宽和电力。
- 适应不同网络环境的智能服务质量(QoS)控制机制。
- 客户定义的媒体分析插件,对 MCU 的流媒体进行分析。
- 实时媒体流分析的使用场景,包括但不限于运动/物体检测。
如何安装开发依赖项
在版本库根目录下,使用以下命令之一来安装依赖关系。
- 交互式模式:scripts/installDeps.sh
- 非交互模式:scripts/installDepsUnattended.sh 在交互模式下,你需要多次输入 "yes" 来继续安装,在非交互模式下,安装会自动继续。
如何建立发布包
要求
媒体服务器可以在以下平台上构建。
- Ubuntu 18.04
- CentOS 7.6
使用说明
在版本库的根目录下。
- 构建本地组件: scripts/build.js -t all --check.
- 打包构建的组件和js文件:scripts/pack.js -t all --install-module --app-path ${webrtc-javascript-sdk-sample-conference-dist}。
${webrtc-javascript-sdk-sample-conference-dist} 是从 owt-javascript-sdk 中建立的,例如 ~/owt-client-javascript/dist/sample/conference,详情见 https://github.com/open-webrtc-toolkit/owt-client-...。
如果将 "--archive ${name}" 选项附加到 pack 命令中,将在根目录下生成一个 "Release-${name}.tgz" 文件。对于其他选项,请使用 "--help" 选项运行脚本。
快速入门
在版本库根目录下,运行以下命令在单机上启动媒体服务器。
- ./bin/init-all.sh --deps
- ./bin/start-all.sh
- 打开 https://localhost:3004,访问网页示例页面。由于测试证书的原因,你可能需要确认这个不安全的访问。
哪里可以找到 API 文件
参见 doc/servermd/Server.md 和 doc/servermd/RESTAPI.md。
用你的应用构建一个 Docker 镜像
运行位于 docker/conference 中的 build_server.sh 脚本。它有一个必要的标志,-p,它应该包含你的应用程序的文件路径。可选的标志是 -i 代表最终的 Docker 镜像名称,以及 -n 将使 Docker 构建以 --no-cache 运行。一个示例。
./docker/conference/build_server.sh -p ~/my_app -i myapp_img。
如何贡献
我们热烈欢迎社区对 Open WebRTC Toolkit 媒体服务器库的贡献。如果你愿意将你的功能和想法贡献给 OWT,请按照以下流程进行。
- 确保你的补丁不会破坏任何东西,包括所有的构建和测试。
- 在 https://github.com/open-webrtc-toolkit/owt-server/... 上提交一个拉请求。
- 如果有的话,请注意您的补丁的审核意见,直到它被接受和合并。OWT 项目采用 Apache License 2.0 版本授权。通过对项目的贡献,您同意其中的许可和版权条款,并根据这些条款发布您的贡献。
如何报告问题
使用Github上的 "Issues" 标签。
(The first version translated by vz on 2020.09.09)