在你的音视频应用中,你可能需要将在线媒体流输入到 RTC 房间中,供频道内的远端用户欣赏。
你可以使用 StartRelayStream 这个 OpenAPI 实现这一功能。

接口行为

你可以调用 StartRelayStream 接口,指定你所属的 AppId,对指定 roomId 对应房间内用户输入在线媒体流。
如果媒体流状态发生变化,你在控制台上设置的回调地址会收到每个状态变化的回调。有关回调结果的详细说明,参看 RelayStreamStateChanged

本接口开启后有效期为 72 小时,即接口开启 72 小时后,会自动停止,并通过回调告知具体信息。

前置条件

在开始输入在线媒体流前,你必须已经在控制台上开启在线媒体流功能。

调用接口

关于调用接口的服务地址、通信协议、字符编码和签名机制,参看调用OpenAPI。

请求方式

使用 Post 方式发起请求。

请求参数

以下是接口特有的请求参数。关于其他公共请求参数,参看请求参数。

Query
参数名类型必填示例值描述
ActionString是StartRelayStream接口名称,本接口取值:StartRelayStream
VersionString是2020-12-01接口版本,本接口取值:2020-12-01
Body
参数名类型必填示例值描述
AppIdString是Your_AppId应用的唯一标志
BusinessIdString否Your_BusinessId业务标识
RoomIdString是Your_RoomId房间 ID,是房间的唯一标志
TaskIdString是Your_TaskId任务 ID。你必须对每个任务设定 TaskId,且在后续进行任务更新和结束时也须使用该 TaskId。关于 TaskId 的详细说明,参看TaskId说明 。 关于 TaskId 及以上 Id 字段的命名规则,参看 ID
UserIdString是Your_UserId在线媒体流对应的的 UserId
MaxIdleTimeint否300任务的空闲超时时间。超过此时间后,任务自动终止。值的范围为[5, 600] ,单位为秒。默认值为300。
TokenString是Your_token客户端与业务服务端进行通讯时用于身份认证的 token 值
ControlStreamControl是/控制选项
TaskId 说明:

TaskId 是任务的标识,在一个 AppId 的 RoomId 下 taskID 是唯一的,不同 AppId 或者不同 RoomId 下 TaskId 可以重复,因此 AppId + RoomId + TaskId 是任务的唯一标识,可以用来标识指定 AppId 下某个房间内正在运行的任务,从而能在此任务运行中进行更新或者停止此任务。

请求示例代码
Query
https://rtc.volcengineapi.com?Action=StartRelayStream&Version=2020-12-01
postscript
Body:
{
    "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
返回调用结果

返回值 Result 仅在请求成功时返回"success",失败时为空。

正常返回示例
{
    "ResponseMetadata": {
        "RequestId": "Your_RequestId",
        "Action": "StartRelayStream",
        "Version": "2020-12-01",
        "Service": "rtc",
        "Region": "cn-north-1"
    },
    "Result":{
        "Message": "success"
    }
}
json