更新时间: 2021-02-22
融云音视频提供多种音视频通信 SDK,所有 SDK 依赖于融云 IM SDK,分别为 音视频通话(呼叫)、音视频会议(房间)、低延迟直播,可结合自身业务进行选择。
有呼叫场景就用 音视频通话 ,没呼叫场景使用 音视频会议 。
分类 | 音视频通话(呼叫) | 音视频会议(房间) | 低延迟直播 |
---|---|---|---|
SDK | CallKit、CallLib | RTCLib | RTCLib |
场景 | 类似微信音视频通话等必须含有呼叫流程的应用场景 | 适用于在线视频会议、小班课、在线视频面试、远程面签等场景 | 直播社交、大型发布会、语聊房、线上大班课等场景 |
差异 | 音视频通话 SDK 区别于音视频会议 SDK,音视频通话(呼叫)SDK 不需要双方约定房间号,SDK 内部自动处理房间号 | 音视频会议 SDK 区别于音视频通话 SDK,会议 SDK 必须使用相同房间号 后可进行通信 | 低延迟直播 SDK 区别于音视频会议 SDK,存在主播、观众概念,观众默认只能观看不能发言,观众发言可通过连麦方式实现 |
# 音视频通话介绍
音视频通话 SDK 含呼叫流程,可以实现一对一呼叫、多人呼叫等音视频通话场景,音视频通话 SDK 区别于音视频会议 SDK,音视频通话(呼叫)SDK 不需要双方约定房间号,呼叫流程自动处理房间号,适用于类似微信音视频通话等必须含有呼叫流程的应用场景,由两部分组成 信令通知
和 音视频传输
信令通知:基于 IMLib SDK,例如 A 给 B 发起通话,A 优先会通过 IM 给 B 发送一个通话请求,B 同意后再进入音视频房间进行音视频通信
音视频传输:基于 RTCLib SDK,例如 A 给 B 发起通话,信令传输完成后,会适用融云提供的音视频能力进行通信
# 呼叫流程图
# 功能特性
连接稳定
: 底层基于 IM 信令通讯,可保障在长时间音视频通话及弱网情况下的保持正常连通,智能 DNS 解析、多链路最优接入策略,为客户提供优质的通信质量保障消息通道
: 支持用户向房间中发送自定义消息,可根据消息指令实现自身业务逻辑处理,使用灵活方便,扩展性强,可满足多种业务场景,如:远端控制、会控管理高质量、低延迟
:- 视频属性:SDK 采集最大支持 1080p 分辨率,30fps 帧率
- 音频属性:音频采样率默认 48kHz,支持单声道
- 抗丢包:音频通话 100% 回声消除,1s 降噪,音频对抗 50% 丢包,视频对抗 30% 丢包
- 低延迟:正常网络下,延迟可达 66ms 内
- 网络自适应,根据当前网络状况自动切换最合适的码率控制、传输策略
多平台互通
: iOS、Android、Web、Mac、Windows、Linux- 备注: Mac、Windows、Linux 基于 Electron (opens new window) 开发实现,暂不提供 C++ 版本的原生 SDK
# SDK分类
SDK | 依赖 | 说明 |
---|---|---|
RTCLib | IMLib | 音视频核心引擎 |
CallLib | RTCLib | 基于 IMLib 和 RTCLib 封装的音视频通信库 |
CallKit | CallLib 、IMKit | 音视频通话界面组件 |
- IMLib: IM 通信能力库,不含 UI,适用于对 UI 有较高订制需求的 IM 开发者
- IMKit: IM 通信组件,包含 UI,适用于快速集成,对 UI 定制需求交少的开发者,IMKit 依赖 IMLib
- RTCLib: 音视频核心引擎,不含 UI、呼叫流程,适用于对 UI 有较高订制需求的音视频开发者,RTCLib 依赖 IMLib
- CallLib: 音视频通话通信库,不含 UI,包含呼叫流程,适用于音视频通话场景,CallLib 依赖 RTCLib、IMLib
- CallKit: 音视频通话界面组件,包含 UI,适用于快速集成音视频通话,对 UI 定制需求交少的开发者,CallKit 依赖 CallLib、IMKit
# 注意事项
CallKit 是基于 CallLib
的音视频通话 UI 框架。包含了单人、多人音视频通话的界面的各种场景和功能。
您可以快速的集成 CallKit 来实现丰富的音视频通话界面,并进行自己的 UI 定制开发。同时我们开源了 CallKit,您可以根据您的需要去使用。
CallKit SDK 支持 iOS 8.0
、Android 4.4
及以上系统。
2.9.13 及以上版本的 CallKit SDK 与其 2.9.13 以下版本不能互通。
# 服务开通
使用融云的音视频服务,包括 CallKit、CallLib、RTCLib 需要在融云开发者后台开通音视频服务 (opens new window)