pili-engineering / QNRTC-Web

QNRTCWeb 是七牛云推出的一款适用于 Web 平台的实时音视频 SDK,提供了包括音视频通话、静音、发布、订阅多种功能,提供灵活的接口,支持高度定制以及二次开发。
https://demo-rtc.qnsdk.com/
Apache License 2.0
131 stars 128 forks source link

1 概述

QNRTCWeb 是七牛云推出的一款适用于 Web 平台的实时音视频 SDK,提供了包括音视频通话、静音、发布、订阅多种功能,提供灵活的接口,支持高度定制以及二次开发。

QNWebRTC 4.x 是在 2.x 的基础上进行了 API 的重构和优化。从而使使用者能够更加高效的接入,所以新接入的用户推荐使用最新版本的 SDK。
使用 2.x 版本的用户若想升级至 4.x 版本,可参考 4.x版本迁移指南 进行升级。

2 功能列表

3 方案介绍

七牛实时音视频云支持低延时音视频通话,提供灵活丰富的接口,方便进行二次开发。该系统主要包括服务端和客户端两个部分,其中,服务端主要提供了房间管理、权限验证、信令和媒体数据转发等功能,客户端则提供了媒体数据的采集、编解码、传输、渲染等功能。

3.1 系统框图

整个系统的架构如上图所示,主要分为三个部分:

3.2 交互流程

实时通话交互流程如上图所示,因此,App 服务端需要开发的工作如下:

关于 roomToken 的计算方法请查阅《七牛实时音视频云服务端 API 接口规范》,另外,我们也提供了多种开发语言的 SDK 服务端开发手册及 SDK 下载

3.3 房间管理

关于音视频通话房间的 API 主要分为两个部分,一部分在客户端,另一部分在服务端。在客户端 SDK 中,只有加入/离开连麦房间的接口。我们把创建/销毁连麦房间的功能放到了服务端,由 App Server 向七牛的服务器发送请求来完成。关于服务端 API 的详细内容,请查阅《七牛实时音视频云服务端 API 接口规范》

4 方案优势

5 应用场景

5.1 主播连麦

5.2 视频会议

5.3 一对一社交

5.4 狼人杀游戏

5.5 在线教育

5.6 在线抓娃娃

5.7 在线客服

6 开发文档

请参考开发文档:QNRTCWeb 开发文档

7 反馈及意见

当你遇到任何问题时,可以通过在 GitHub 的 repo 提交 issues 来反馈问题,请尽可能的描述清楚遇到的问题,如果有错误信息也一同附带,并且在 Labels 中指明类型为 bug 或者其他。

通过这里查看已有的 issues 和提交 Bug

8 FAQ

8.1 如何体验 Demo?

您可以直接使用主流浏览器(Firefox 50+, Safari 11+, Chrome 56+)访问我们 Web 版 Demo 来体验通话效果

8.2 实时通话功能是否收费?

客户端 SDK 不收费,服务端可按照带宽、流量或者时长收费,具体请联系七牛商务或者技术支持。

8.3 实时通话对讲延时多大?

正常网络条件下,对讲延时在 200-300ms 左右。

8.4 是否有服务端的 SDK 或者 demo 代码可以参考?

有的,请参考: QNRTC-Server