客户端旁路推流
旁路推流:将融云实时音视频流转为 rtmp 流媒体协议,推流到 CDN 服务。
旁路推流支持两种控制方式,本文仅介绍方案一:
- 方案一:使用客户端接口进行控制,使用
addPublishStreamUrl
接口配置 CDN 地址。 - 方案二:使用服务端 API 的
/rtc/mcu/config
接口进行控制。本文不做介绍,具体请参见服务端文档旁路推流。
业务链路
融云直播支持将实时音视频流转推到 CDN 服务,业务链路如下图所示:
配置直播 CDN 推流地址
开发者首先通过 publishDefaultLiveStreams
或 publishLiveStream
成功回调中拿到 RCRTCLiveInfo
对象,然后调用其中的 addPublishStreamUrl
接口来设置 CDN 推流地址。
设置 CDN 推流地址有以下几点要求:
- 必须开通音视频服务和直播服务。
- 房间模式必须为直播模式。
- 设置的 CDN 地址不能为空。
- 最多设置 5 个 CDN 地址,超出会抛出
RTCErrorCode.RongRTCCodeCDNCountReachToLimit
错误。 - 如果多次设置相同的地址,会直接返回成功。
-
示例代码:
mLiveInfo.addPublishStreamUrl("cdnUrl", new IRCRTCResultDataCallback<String[]>() {
@Override
public void onSuccess(String[] data) {
}
@Override
public void onFailed(RTCErrorCode errorCode) {
}
}); -
API 参考:
移除配置过的直播 CDN 地址
当主播发布资源成功之后,主播可选择移除一个设置过的 CDN 推流地址,有以下几点要求:
- 必须开通音视频服务和直播服务。
- 房间模式必须为直播模式。
- 移除的 CDN 地址不能为空。
- 如果移除的地址,之前没有设置过,会直接返回成功。
-
示例代码:
mLiveInfo.removePublishStreamUrl("cdnUrl", new IRCRTCResultDataCallback<String[]>() {
@Override
public void onSuccess(String[] data) {
}
@Override
public void onFailed(RTCErrorCode errorCode) {
}
}); -
API 参考:
CDN 推流回调
融云在低延迟直播旁路推流到融云 CDN 或第三方 CDN 时,支持将推流的状态变化实时通知您的服务器。具体请参见音视频服务端文档: