开放式WebRTC工具包媒体服务器

OWT 通用服务器(流/会议/转码/模拟)。(又称为 MediaServer)。「General server (streaming/conference/transcoding/anayltics) for OWT. (A.k.a. MediaServer)」

Github stars Tracking Chart

开放式 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.mddoc/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" 标签。

也请看 http://webrtc.intel.com

(The first version translated by vz on 2020.09.09)

Main metrics

Overview
Name With Owneropen-webrtc-toolkit/owt-server
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 10)
PlatformLinux
License:Apache License 2.0
所有者活动
Created At2019-03-08 07:34:33
Pushed At2024-10-23 03:20:15
Last Commit At2024-10-23 11:20:15
Release Count11
Last Release Name5.1.0 (Posted on 2023-03-13 10:46:10)
First Release Namev4.2 (Posted on )
用户参与
Stargazers Count1.1k
Watchers Count66
Fork Count382
Commits Count4.6k
Has Issues Enabled
Issues Count571
Issue Open Count273
Pull Requests Count655
Pull Requests Open Count44
Pull Requests Close Count120
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Open WebRTC Toolkit Media Server

The media server for OWT provides an efficient video conference and streaming service that is based on WebRTC. It scales a single WebRTC stream out to many endpoints. At the same time, it enables media analytics capabilities for media streams. It features:

  • Distributed, scalable, and reliable SFU + MCU server
  • High performance VP8, VP9, H.264, and HEVC real-time transcoding on Intel® Core™ and Intel® Xeon® processors
  • Wide streaming protocols support including WebRTC, RTSP, RTMP, HLS, MPEG-DASH
  • Efficient mixing of HD video streams to save bandwidth and power on mobile devices
  • Intelligent Quality of Service (QoS) control mechanisms that adapt to different network environments
  • Customer defined media analytics plugins to perform analytics on streams from MCU
  • The usage scenarios for real-time media stream analytics including but not limited to movement/object detection

How to install develop dependency

In the repository root, use one of following commands to install dependency.

  • Interactive mode: scripts/installDeps.sh
  • Non-interactive mode: scripts/installDepsUnattended.sh
    In interactive mode, you need type "yes" to continue installation several times and in non-interactive, the installation continues automatically.

How to build release package

Requirements

The media server can be built on following platforms:

  1. Ubuntu 18.04
  2. CentOS 7.6

Instructions

In the root of the repository:

  1. Build native components: scripts/build.js -t all --check.
  2. Pack built components and js files: scripts/pack.js -t all --install-module --sample-path ${webrtc-javascript-sdk-sample-conference-dist}.

The ${webrtc-javascript-sdk-sample-conference-dist} is built from owt-javascript-sdk, e.g. ~/owt-client-javascript/dist/sample/conference, see https://github.com/open-webrtc-toolkit/owt-client-javascript for details.

If "--archive ${name}" option is appended to the pack command, a "Release-${name}.tgz" file will be generated in root folder. For other options, run the scripts with "--help" option.

Quick Start

In the repository root, run following commands to start media server on single machine:

  1. ./bin/init-all.sh --deps
  2. ./bin/start-all.sh
  3. Open https://localhost:3004 to visit the web sample page. Due to the test certificate, you may need confirm this unsafe access.

Where to find API documents

See "doc/servermd/Server.md" and "doc/servermd/RESTAPI.md".

How to contribute

We warmly welcome community contributions to Open WebRTC Toolkit Media Server repository. If you are willing to contribute your features and ideas to OWT, follow the process below:

  • Make sure your patch will not break anything, including all the build and tests
  • Submit a pull request onto https://github.com/open-webrtc-toolkit/owt-server/pulls
  • Watch your patch for review comments if any, until it is accepted and merged
    OWT project is licensed under Apache License, Version 2.0. By contributing to the project, you agree to the license and copyright terms therein and release your contributions under these terms.

How to report issues

Use the "Issues" tab on Github.

See Also

http://webrtc.intel.com