服务端旁路推流
旁路推流:将融云实时音视频流转为 rtmp 流媒体协议,推流到 CDN 服务。
业务链路
在主播加入房间、发布资源成功之后,您的 App Server 可调用融云 RTC Server API 设置旁路推流到的 CDN 地址。
前提条件
设置旁路推流 CDN 时必须满足以下前提条件:
- 已开通音视频服务和直播服务。
- 房间模式必须为直播模式。
- 设置的 CDN 地址格式必须合法。
请求方法
POST: http(s)://api.rong-api.com/rtc/mcu/config.json
签名规则: 所有请求融云服务端 API 接口的请求均需要进行规则校验,详见 API 请求签名。
正文参数
HTTP 请求正文中包含具有以下结构的 JSON 对象:
参数 | 类型 | 说明 |
---|---|---|
sessionId | String | (必填)需要配置的直播会话 ID。您可以通过融云服务端回调获取该 sessionId ,请参见房间状态同步。 |
config | String | Object 格式数据;可以设置布局相关参数 |
config.version | Number | (必填)直播旁路推流 CDN 的配置版本号,默认为 1 |
config.output | Object | 合流之后的媒体输出定义 |
config.output.cdn | Array | 转推CDN的推流地址列表,必须传入完整的推流地址列表。多次调用以最新的为准 |
config.output.cdn [ i ].pushurl | String | 完整的 CDN 推流地址;请勿填入 CDN 拉流地址 |
注意
- 目前,同一房间的直播,最多支持配置 5 个 CDN 推流地址。
- 接口传入的
config.output.cdn
列表参数,每次必须均为全量。多次调用以最新的为准。如果多次设置相同的地址,会直接返回成功。- 如果传入的 CDN 推流地址无效或无权限等造成的推流失败,会通过 CDN 推流回调通知您的 App 服务。
- CDN 一般区分推流地址和拉流地址,此接口需要传入推流地址,请勿混淆。
请求示例
POST /rtc/mcu/config.json HTTP/1.1
Host: api.rong-api.com
App-Key: uwd1c0sxdlx2
Timestamp: 1585127132438
Nonce: 14314
Signature: 45beb7cc7307889a8e711219a47b7cf6a5b000e8
Room-Id: room1
Content-Type: application/json
{
"sessionId":"session1",
"config":{
"version":1,
"output":{
"cdn":[
{
"pushurl":"rtmp://your.test.cdn/room1"
},
{
"pushurl":"rtmp://your.test.cdn2/room1"
}
]
}
}
}
返回结果
HTTP 响应正文包含具有以下结构的 JSON 对象:
code
:HTTP 响应正文中的业务码,200
为处理成功。
返回结果示例
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"code":200
}
状态码定义
参见状态码。