跳到主要内容

客户端旁路推流

旁路推流:将融云实时音视频流转为 RTMP 流媒体协议,推流到 CDN 服务。

旁路推流支持两种控制方式。本文仅介绍方案一:

  • 方案一:使用客户端接口进行控制,使用 addPublishStreamUrl 接口配置 CDN 地址。
  • 方案二:使用服务端 API 的 /rtc/mcu/config 接口进行控制。本文不做介绍,具体请参见服务端文档旁路推流

业务链路

融云直播支持将实时音视频流转推到 CDN 服务,业务链路如下图所示:

(height=400)

配置直播 CDN 推流地址

在发布成功回调中获取 RCRTCLiveInfo 对象(通过 publishDefaultLiveStreamspublishLiveStream),然后调用其中的 addPublishStreamUrl 设置 CDN 推流地址。

设置 CDN 推流地址需满足以下要求:

  1. 必须开通音视频服务和直播服务。
  2. 房间模式必须为直播模式。
  3. 设置的 CDN 地址不能为空。
  4. 最多设置 5 个 CDN 地址,超出会抛出 RTCErrorCode.RongRTCCodeCDNCountReachToLimit 错误。
  5. 多次设置相同地址会直接返回成功。
  • 示例代码:

    Java
    mLiveInfo.addPublishStreamUrl("cdnUrl", new IRCRTCResultDataCallback<String[]>() {
    @Override
    public void onSuccess(String[] data) {
    }

    @Override
    public void onFailed(RTCErrorCode errorCode) {
    }
    });

移除配置过的直播 CDN 地址

当主播发布资源成功后,主播可调用 removePublishStreamUrl 方法,选择移除一个已设置的 CDN 推流地址。移除需满足以下要求:

  1. 必须开通音视频服务和直播服务。
  2. 房间模式必须为直播模式。
  3. 移除的 CDN 地址不能为空。
  4. 如果移除的地址此前未设置过,会直接返回成功。
  • 示例代码:

    Java
    mLiveInfo.removePublishStreamUrl("cdnUrl", new IRCRTCResultDataCallback<String[]>() {
    @Override
    public void onSuccess(String[] data) {
    }

    @Override
    public void onFailed(RTCErrorCode errorCode) {
    }
    });

CDN 推流回调

融云在低延迟直播旁路推流到第三方 CDN 时,支持将推流的状态变化实时通知您的服务器。具体请参见音视频服务端文档: