在你的音视频应用中,你可能需要将在线媒体流输入到 RTC 房间中,供频道内的远端用户欣赏。
你可以使用 StartRelayStream 这个 OpenAPI 实现这一功能。
你可以调用 StartRelayStream 接口,指定你所属的 AppId,对指定 roomId 对应房间内用户输入在线媒体流。
如果媒体流状态发生变化,你在控制台上设置的回调地址会收到每个状态变化的回调。有关回调结果的详细说明,参看 RelayStreamStateChanged
本接口开启后有效期为 72 小时,即接口开启 72 小时后,会自动停止,并通过回调告知具体信息。
在开始输入在线媒体流前,你必须已经在控制台上开启在线媒体流功能。
关于调用接口的服务地址、通信协议、字符编码和签名机制,参看调用OpenAPI。
请求频率:QPS 不得超过 150。
下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。
| 参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| Action | String | 是 | StartRelayStream | 接口名称。当前 API 的名称为 StartRelayStream。 |
| Version | String | 是 | 2020-12-01 | 接口版本。当前 API 的版本为 2020-12-01。 |
| 参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| AppId | String | 是 | Your_AppId | 应用的唯一标志 |
| BusinessId | String | 否 | Your_BusinessId | 业务标识 |
| RoomId | String | 是 | Your_RoomId | 房间 ID,是房间的唯一标志 |
TaskId | String | 是 |
| 任务 ID。你必须对每个任务设定 TaskId,且在后续进行任务更新和结束时也须使用该 TaskId。 |
| UserId | String | 是 | Your_UserId | 在线媒体流对应的的 UserId |
| MaxIdleTime | Integer | 否 | 300 | 任务的空闲超时时间。超过此时间后,任务自动终止。值的范围为 [5, 600] ,单位为秒。默认值为300。 |
| Token | String | 是 | Your_token | 客户端与业务服务端进行通讯时用于身份认证的 token 值 |
| Control | Object of StreamControl | 是 | / | 控制选项 |
| 参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| StreamUrl | String | 是 | rtmp://xxx | 在线流媒体地址。媒体格式应为:hls、rtmp、mp4、flv、dash、或 ts。如源流为海外,建议联系技术支持,以保障最佳体验。 |
MediaType | Integer | 否 |
| 媒体类型。
|
StreamMode | Integer | 否 |
| 流处理模式。
|
| StartTimeStamp | Integer | 否 | 0 | 任务起始时间戳,用于定时播放,Unix时间,单位为秒。默认为 0,表示立即启动。此参数仅对 StartRelayStream接口生效。 |
| Loop | Boolean | 否 | False | 是否循环播放,仅对源流为点播流时生效。 |
| VideoWidth | Integer | 否 | 640 | 视频宽度。转码时必填,单位为像素,范围为 [16, 1920],必须是偶数,值为奇数时自动调整为偶数。 |
| VideoHeight | Integer | 否 | 480 | 视频高度,转码时必填。单位为像素,范围为 [16, 1920],必须是偶数,值为奇数时自动调整为偶数。 |
| FrameRate | Integer | 否 | 15 | 发送帧率,值的范围为[1,30],默认值为15,转码时生效。 |
| Bitrate | Integer | 否 | 6000 | 最大发送码率,单位为 Kbps,不填则不限制,转码时生效。 |
下表仅列出本接口特有的返回参数,公共返回参数请参见返回结构。
| 参数 | 类型 | 示例值 | 描述 |
|---|---|---|---|
| Message | String | ok | 仅在请求成功时返回"ok",失败时为空 |
POST https://rtc.volcengineapi.com?Action=StartRelayStream&Version=2020-12-01
{
"AppId": "Your_AppId",
"BusinessId": "Your_BusinessId",
"RoomId": "Your_RoomId",
"TaskId": "Your_TaskId",
"UserId": "Your_UserId",
"Token": "Your_Token",
"MaxIdleTime": 300,
"Control" : {
"StreamUrl": "rtmp://xxx",
"MediaType": 0,
"StreamMode": 0,
"StartTimeStamp": 0,
"Loop": false,
"VideoWidth": 640,
"VideoHeight": 480,
"FrameRate": 15,
"Bitrate": 6000
}
}
json{
"ResponseMetadata": {
"RequestId": "Your_RequestId",
"Action": "StartRelayStream",
"Version": "2020-12-01",
"Service": "rtc",
"Region": "cn-north-1"
},
"Result": {
"Message": "ok"
}
}
json您可访问公共错误码,获取更多错误码信息。