产品架构
产品架构
客户端 SDK
主要负责客户端的音视频采集、渲染、滤镜处理、编解码、传输等工作,客户可以快速集成到自己 App 中,让自己的应用具备音视频通话的能力。 支持 Android、iOS、Web ,集成 SDK 就可实现音视频的采集、编解码、渲染播放等工作,方便客户植入互动音视频服务 不在需要开发复杂的音视频底层逻辑,只需要调用七牛 SDK 的接口即可以快速完成开发; 包含直播丰富的扩展功能,例如:美颜、滤镜、面部特效。 此外,客户端 SDK 有丰富的扩展性、兼容性和自定义开发能力。客户不仅可以使用七牛免费提供的美颜和滤镜,也可以通过扩展功能,选择接入市面任何一家美颜、滤镜、面部特效的 SDK 供应商。
服务端 REST API 和 SDK
主要提供房间管理、状态回调等基本的业务功能,另外还提供鉴黄鉴暴、质量分析等配套功能 只需要集成对应语言的服务端 SDK 即可以管理实时音视频互动房间、调用配套数据处理服务、向客户端通知音视频流和数据处理的状态。
业务服务器
主要负责信令交互、音视频传输、代理加速等工作,保证音视频互动延时低,可用性高。
实时互动流媒体网络
七牛基于直播云布局的全球丰富节点,推出了低延时互通的实时互动网络(包括丰富的云端配套功能),这是一种新型的专为实时传输而设计的网络架构,基于 UDP 协议。 通过在互联网上不同地区的数据中心放置软件组网单元,相互连接互相调度,在现有的公共互联网基础上构建一层新的虚拟网络。
七牛实时互动网络能够实时根据各节点的连接和传输状况、 负载状况以及到用户的距离和响应时间,自动分配最优、最通畅的传输路径,达到实时传输需要的质量保障级别。能应互联网实时传输的需求,尤其是在互联网信号不稳定,传输效率不佳的情况下,保证稳定传输及低延时。
此外,七牛音视频团队基于对国内外各类营运商的了解,构建了一套非常稳定高效的调度机制,为整个实时互动流媒体网络找到最合适媒体。
信令传输
实时通话交互流程如下图所示。
因此,App 服务端需要开发的工作如下:
- 为用户创建通话房间,并将通话房间和对应主播的 Id 关联起来
- 计算加入房间的 roomToken 并提供给 App,该 roomToken 是结合 userId、roomName 等信息使用七牛的 AccessKey 和 SecretKey 按照一定的规则生成
- 提供通话的业务逻辑,如:通话请求/应答业务逻辑、服务端房间管理和踢人等
- 关于 roomToken 的计算方法及 RTC Server API 的说明请查阅《七牛实时音视频云服务端 API 接口规范》,另外,我们也开源了一份 App Server 的实现代码供开发者参考。