跳到主要内容

客户端旁路推流

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

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

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

业务链路

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

(height=400)

配置直播 CDN 推流地址

当主播加入直播间之后,就可设置 CDN 推流地址。

设置 CDN 地址有以下几点要求:

  1. 必须开通音视频服务和直播服务。
  2. 房间模式必须为直播模式。
  3. 设置的 CDN 地址不能为空。
  4. 最多设置 5 个 CDN 地址。

RCMCUConfigBuiler

RCMCUConfigBuilder 是一个构建器类型,该类实例中包含了构建一个有效布局配置和 CDN 推流配置所需要的所有接口,构建接口均为同步接口且支持链式调用

RCMCUConfigBuilder 实例对象内部会在每一步构建接口调用时修改内存中存储的配置信息。当构建完成后,需要调用 flush() 接口上传配置到服务器以使配置生效。

提示

以下示例代码中的 room 为主播加入直播房间成功后获取到的 RCLivingRoom 类型实例对象。

API 参考:getMCUConfigBuilder

import { RCMCUConfigBuilder } from '@rongcloud/plugin-rtc'

// 获取构建器实例
const builder: RCMCUConfigBuilder = room.getMCUConfigBuilder()

增加推流地址

提示

最多可以添加 5 个推流地址。当推流地址超出 5 个时,当次调用传入的地址将全部无效。

API 参考:addPublishStreamUrls

builder.addPublishStreamUrls(['url_1', 'url_2'])

移除推流地址

API 参考:removePublishStreamUrls

builder.removePublishStreamUrls(['url_1', 'url_2'])

配置生效

提示

在调用该方法前,所有接口调用只会对本地配置进行修改,不会产生实际效果。

API 参考:flush

// 上传配置给 media server 以修改最终合流效果
const { code } = await builder.flush()

CDN 推流回调

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