RTMPDispatchV2
https://rtc-api.zego.im/
调用本接口可以发起 RTMP 推拉流调度,支持 "pull" 和 "push" 两种调度模式。
当您需要自行通过 RTMP 协议,从 ZEGO 音视频云进行直播流的推流或拉流时,可以通过本接口获取 RTMP 的推流或拉流节点。开发者在客户端传入流 ID(StreamId)、调度模式(Type)、客户端 IP(ClientIP)和序列号(Sequence)后,ZEGO 媒体服务器(RTC 服务)返回调度结果集,供客户推拉流。
例如,当通过 OBS 等第三方推流工具进行 RTMP 推流时,需要进行推流调度;当需要第三方播放器拉 RTMP 流进行播放时,需要进行拉流调度。
首次使用本接口,需要联系 ZEGO 技术支持进行配置。
旧版接口使用说明
RTMPDispatchV2(推荐) 和 RTMPDispatch 的区别是,访问 ZEGO 服务端时:
- 使用的是
RTMPDispatchV2
,ZEGO 服务端返回的 Data 数据为 URL 形式。 - 使用的是
RTMPDispatch
,ZEGO 服务端返回的 Data 数据为 IP Port 形式。
请求地址:https://rtc-api.zego.im/?Action=RTMPDispatch
响应示例:
{
"Code":0,
"Message":"ok",
"RequestId":"5094436160208407316",
"Data":[
"81.69.49.115:1935"
]
}
测试环境下(详见 IsTest 公共参数说明),流 ID 需要加上 "zegotest-AppId-" 前缀。例如,流 ID 为 "test",在 AppId 为 "123456789" 的测试环境下,流 ID 应为 "zegotest-123456789-test"。
Request
Query Parameters
- 流 ID 由您自己定义。
- 在推流时,需要在整个 AppID 内全局唯一,若出现在同一个 AppID 内,不同的用户各推了一条流且流名相同,将会导致后推流的用户推流失败。
- 仅支持数字,英文字符 和 '-', '_'。
- pull:获取 RTMP 的拉流节点
- push:获取 RTMP 的推流节点
Possible values: [RTMPDispatchV2
]
接口原型参数
https://rtc-api.zego.im?Action=RTMPDispatchV2
💡公共参数。AppId,ZEGO 分配的用户唯一凭证。
💡公共参数。随机字符串。
💡公共参数。Unix 时间戳,单位为秒。最多允许 10 分钟的误差。
💡公共参数。签名,用于验证请求的合法性。
Possible values: [2.0
]
Default value: 2.0
💡公共参数。签名版本号。
Possible values: [true
, false
]
Default value: false
💡公共参数。是否为测试环境。设为 true 表示使用测试环境。2021-11-16 及之前在 ZEGO 控制台创建的项目默认是测试环境,可根据业务需求设置此参数;而之后创建的项目默认是正式环境。
流 ID,长度不超过 256 的字符串。
请求序列号;仅用于请求对帐,推荐使用时间戳(毫秒级别)。
调度模式:
非必选,如有,则传入客户端 IP 地址,例如:119.23.242.129。
注意
当前不支持 IPv6 格式的 IP 地址。
Responses
- 200
- application/json
- curl
- python
- go
- nodejs
- ruby
- csharp
- php
- java
- powershell
- CURL