cdn_plugin
融云 CDN 功能依赖
Player
插件。插件导入方法请参见导入 SDK。
场景描述
当您使用 RTC SDK 做直播应用时,可以选择用 CDN 分发直播媒体流。在控制台开启 融云 CDN 服务并配置域名等信息后,观众端 APP 可以调接口来选择订阅 CDN 链路或者 RTC 低延迟链路的直播流。
使用 CDN 拉流时观众端默认按 CDN 服务输出的视频格式拉流,也可以调接口设置指定的拉流分辨率、码率、帧率( 说明:会触发 CDN 转码服务)。
需要说明的是主播端还是用 RTC 协议发布音视频资源,资源由融云 Server 来接收并转协议到 RTMP 并推给 CDN。此外观众端 SDK 可以感知到主播是否推流,服务端合流情况,无需 App Server 做过多的任务管理。
服务架构图:
主要业务流程图:
服务开通
融云 CDN 是付费增值服务,且需要开通后才能使用。欢迎访问官网 查看计费说明,或直接前往控制台 开通融云 CDN 服务。
服务配置入口在控制台 —— 服务管理 —— 音视频服务 —— 音视频直播 —— 融云 CDN
服务配置
开通服务后,可见以下配置页。
推流方式
自动(推荐):在后台配置后,所有直播房间的直播流都会自动推流到 CDN,观众可随时订阅。
手动:在直播主播开始推流后,您需要根据产品设计决定何时调接口让融云服务开始或停止推流到 CDN。
推拉流域名
推拉流域名都需要填写二级域名,请确保此域名没有在别的 APPKEY 下配置过。
域名是成对的,推流和拉流有绑定关系,新增和修改时需要一并修改。
您需要确保一级域名已经备案过。如果因域名没有备案或涉及非法业务等原因导致推流或者拉流域名不可用,由此产生的任何后果由您自身承担。
域名配置 “已生效” 后,需要您公司开发或服务运维人员自己做 cname 配置。具体如何配置可以咨询域名供应商。
防盗链配置
防盗链配置是可选项。配置后会提升推拉流域名的安全。
开启后一定要配置推流和拉流地址有效期时间和加密 URL 的密文 KEY。
防盗链开启后,如果观众端遇到弱网( 融云 SDK 内部帮您在网络恢复后重新订阅成功 )会比没有防盗链多出一些恢复订阅时间。
- 在 20:00 至次日 2:00 进行的配置不会立即生效,会在 2 点后依次配置生效。在此时间段外进行配置会在 30 分钟后生效。
- 新配置生效后,原有的配置即刻作废。建议开发者避开业务高峰时段,并给还在使用老配置的房间用户发送提醒通知,重新订阅新地址。
- 如果您的业务里 CDN 链路上的观众会进行分辨率切换,需要提工单告知我们具体涉及哪些视频分辨率、帧率、码率,我们会配置相应域名支持的转码模版。
主播
是否启用内置 CDN
如果您在控制台配置融云CDN 为手动模式,您可根据产品需求,设置是否启用内置 CDN。方法如下:
-
在主播加入房间成功后,使用发布资源方法
RCRTCLocalUser#publishDefaultLiveStreams(IRCRTCResultDataCallback<RCRTCLiveInfo> callBack)
返回的RCRTCLiveInfo
对象设置是否启用内置CDN
,该方法在整个直播过程中都可以操作开关。 -
开启或关闭内置 CDN 时,观众均会收到对应回调。
开启内置 CDN 时:
房间中的观众会收到 IRCRTCRoomEventsListener 中
onPublishCDNStream(RCRTCCDNInputStream stream)
回调。关闭内置 CDN 时:
房间中观众会收到 IRCRTCRoomEventsListener 中
onUnpublishCDNStream(RCRTCCDNInputStream stream)
回调。
void enableInnerCDN(boolean enable, IRCRTCResultCallback callBack);