更新时间: 2021-06-16

融云音视频提供多种音视频通信 SDK,所有 SDK 依赖于融云 IM SDK,分别为 音视频通话(呼叫)音视频会议(房间)低延迟直播,可结合自身业务进行选择。

有呼叫场景就用 音视频通话 ,没呼叫场景使用 音视频会议

分类 音视频通话(呼叫) 音视频会议(房间) 低延迟直播
SDK CallKit、CallLib RTCLib RTCLib
场景 类似微信音视频通话等必须含有呼叫流程的应用场景 适用于在线视频会议、小班课、在线视频面试、远程面签等场景 直播社交、大型发布会、语聊房、线上大班课等场景
差异 音视频通话 SDK 区别于音视频会议 SDK,音视频通话(呼叫)SDK 不需要双方约定房间号,SDK 内部自动处理房间号 音视频会议 SDK 区别于音视频通话 SDK,会议 SDK 必须使用相同房间号 后可进行通信 低延迟直播 SDK 区别于音视频会议 SDK,存在主播、观众概念,观众默认只能观看不能发言,观众发言可通过连麦方式实现

# 音视频会议介绍

音视频会议 SDK 基于房间模型设计,可以实现一对一、多人通话等场景,音视频会议 SDK 区别于音视频通话 SDK,会议 SDK 使用相同房间可进行通信

# 功能特性

  • 连接稳定: 底层基于 IM 信令通讯,可保障在长时间音视频通话及弱网情况下的保持正常连通,智能 DNS 解析、多链路最优接入策略,为客户提供优质的通信质量保障

  • 消息通道: 支持用户向房间中发送自定义消息,可根据消息指令实现自身业务逻辑处理,使用灵活方便,扩展性强,可满足多种业务场景,如:远端控制、会控管理

  • 高质量、低延迟:

    • 视频属性:SDK 采集最大支持 1080p 分辨率,30fps 帧率
    • 音频属性:音频采样率默认 48kHz,支持双声道
    • 抗丢包:音频通话 100% 回声消除,1s 降噪,音频对抗 80% 丢包,视频对抗 40% 丢包
    • 低延迟:正常网络下,延迟可达 66ms 内
    • 网络自适应,根据当前网络状况自动切换最合适的码率控制、传输策略
  • 多平台互通: iOS、Android、Web、Mac、Windows、Linux

# 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

融云音视频服务通过 RongRTClib 提供音视频通讯能力,支持一对一和多对多的实时音视频通话,支持自定义视频流,修改本端采集的音视频原始数据,修改接收到的音频原始数据,自定义渲染视频视图,纯语音通话和视频通话等功能。详细功能列表如下:

# 主要功能

类别 功能 描述
房间管理 加入房间 用户直接发起音视频之前需要加入同一个房间
离开房间 结束音视频通话之后退出房间,退出后默认关闭音视频,清空订阅关系及当前用户在房间中所有信息
当前房间信息 获取当前房间信息,如当前房间 ID、当前用户、加入房间的其他用户
设置房间属性 自定义房间信息,如标识当前房间中用户的身份标识,通过获取房间属性进行相关业务处理
音视频流控制 发布音视频流 加入房间之后可以把采集的音视频流推送到 MediaServer,并且广播给同一个房间里的用户,其他人收到通知可以选择订阅来接收流
取消发布音视频流 关闭摄像头、麦克风或结束音视频通话时可取消发布音视频流
视频流预处理 视频采集后回调给开发者进行再处理,实现美颜、磨皮、水印等功能
音频流预处理 音频采集后回调给开发者进行再处理,实现均衡器、个性化音效等功能
发布自定义视频流 发布自定义视频流,如:屏幕共享、本地视频共享功能实现
房间监听回调 用户加入回调 开发者可以实现监控房间内的人员进出情况
监控房间内音视频流的变化 在会议控制、远程指导等场景中,实现用户音频流状态变更通知其他参会者
数据流第一个关键帧到达 用于当用户加入房间后视频画面的初始图片显示使用
视频预览帧回调 在实现视频水印效果时,可通过此功能实现水印效果的预览
设备控制 摄像头控制 开关或切换设备摄像头;
关闭/打开麦克风 关闭/打开当前使用的麦克风
切换使用外放/听筒 切换使用当前设备外放/听筒

# 依赖关系

RTC SDK 强依赖 IM SDK,使用 RTC SDK 前必须引入 IM SDK,引入方式可参考 示例 (opens new window),

# 兼容性

# 移动端兼容性
平台 系统版本
iOS 8.0 及以上系统
Android 4.3 及以上系统
# Web端兼容性

Web RTCLib v5.1.0 版本开始已支持大部分现代浏览器,但由于各浏览器厂商对于 WebRTC 能力实现不同,故 RTCLib 在浏览器中的功能支持情况也有所不同。

功能 音频 视频 视频小流 屏幕共享 自定义音视频
平台 浏览器 --- --- --- --- ---
Windows Chrome 57+ 57+ 63+ 72+ 57+
FireFox 56+ 56+ 56+ 66+ 56+
Edge 79+ 79+ 79+ 79+ 79+
Opera 76+ 76+ 76+
QQ 10+ 10+ 10+ 10+
360 12+ 12+ 12+ 12+ 12+
MacOSX Chrome 57+ 57+ 63+ 72+ 57+
Safari 11+ 11+ 11+ 11+
FireFox 56+ 56+ 56+ 66+ 56+
Edge 79+ 79+ 79+ 79+ 79+
Opera 46+ 46+ 46+
QQLite
iOS 14.3+ Safari
Chrome
FireFox
微信内置浏览器 微信 6.5 微信 6.5
Android 6.0+ Chrome 90+ 90+
FireFox 87+ 87+
Opera 62+ 62+
WebView
微信内置浏览器

其他已知问题说明

  • 华为 Android 设备上使用 Chrome 浏览器无法使用视频功能
  • Vivo Android 设备内置浏览器不支持 WebRTC 能力,故无法使用 RTCLib
  • 小米 Android 设备内置小米浏览器不支持 WebRTC 能力,故无法使用 RTCLib

# 注意事项

  1. 3.0.0 及之后版本的 RTCLib SDK 与 3.0.0 之前版本的 RTCLib SDK 不能互通。
  2. 如果您使用移动端 RTCLib 3.0.0 SDK 时必须使用 IMLib 2.9.13 及以上版本进行集成。
  3. 如果您使用Web端 RTCLib 3.0.0 SDK 时必须使用 IMLib 2.5.0 及以上版本进行集成。

# 同时通话人数说明

为确保终端用户音视频通话质量,同一房间建议最多音视频同时通话人数,如下:

类型 人数
视频通话 16
音频通话 32

# 服务开通

使用融云的音视频服务,包括 CallKit、CallLib、RTCLib 需要在融云开发者后台开通音视频服务 (opens new window)

文档是否解决您的问题 ?

如果遇到产品相关问题,您可 提交工单 寻求帮助