You need to enable JavaScript to run this app.
导航
开始在线媒体流输入 StartRelayStream
最近更新时间:2024.09.29 17:13:36首次发布时间:2024.01.03 20:25:17

本文档 API 接口为最新版本接口,后续相关功能的新增都会在此更新,推荐使用最新版本接口。旧版接口文档请参考历史版本

注意

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

在实时音视频通话场景中,若需将在线媒体流输入到 RTC 房间,你可通过调用此接口实现。

使用说明

通过设定应用标识、房间 ID、任务 ID、用户 ID 及 Token,并配置媒体流控制选项,你可指定在线媒体流输入到 RTC 房间。调用后,接口将返回操作结果。

如果媒体流状态发生变化,你在控制台上设置的回调地址会收到每个状态变化的回调。有关回调结果的详细说明,参看 RelayStreamStateChanged

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

前置条件

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

注意事项

请求频率:QPS 不得超过 150。

请求说明

  • 请求方式:POST
  • 请求地址:https://rtc.volcengineapi.com?Action=StartRelayStream&Version=2023-11-01

调试

请求参数

下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数

Query

参数
类型
是否必选
示例值
描述
Action
String
StartRelayStream
接口名称。当前 API 的名称为 StartRelayStream
Version
String
2023-11-01
接口版本。当前 API 的版本为 2023-11-01

Body

参数
类型
是否必选
示例值
描述
AppId
String
661e****543cf
你的音视频应用的唯一标志,参看获取 AppId
BusinessId
String
B****23
业务标识
RoomId
String
Room1
房间 ID,是房间的唯一标志
TaskId
String
Task1

任务 ID。你必须对每个任务设定 TaskId,且在后续进行任务更新和结束时也须使用该 TaskId。

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

关于 TaskId 及以上 Id 字段的命名规则符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128}

若任务运行中,使用相同的 TaskId 重复调用开始接口不会导致请求失败,BaseResponse.Result 会提示 The task has been started. Please do not call the startup task interface repeatedly
UserId
String
User1
在线媒体流对应的的 UserId
MaxIdleTime
Integer
300
任务的空闲超时时间。超过此时间后,任务自动终止。取值范围为 [5, 600] ,单位为秒,默认值为 300
Token
String
001661e****543cf80
客户端与业务服务端进行通讯时用于身份认证的 token
Control
Object
-
控制选项
StreamUrl
String
rtmp://xxx
在线流媒体地址。媒体格式应为:hls、rtmp、mp4、flv、dash、或 ts。如源流为海外,建议联系技术支持,以保障最佳体验。
MediaType
Integer
0

媒体类型。

  • 0:音视频
  • 1:音频。采用此选项时,必须是 AAC 或 Opus 编码。
  • 2:视频
默认值为0
StreamMode
Integer
0

流处理模式。

  • 0:转码。采用此选项时,原视频编码方式必须是 H.264 或 ByteVC1。
  • 1:转封装。采用此选项时,原视频编码方式必须是 H.264。转封装时,源流的视频关键帧间隔若过大,会影响 RTC 体验,建议 1s,但最大不超过 5s。
默认值为0
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,不填则不限制,转码时生效。

返回参数

本接口无特有的返回参数。公共返回参数请见返回结构
其中返回值 Result 仅在请求成功时返回 ok,失败时为空。

请求示例

POST https://rtc.volcengineapi.com?Action=StartRelayStream&Version=2023-11-01
{
    "AppId": "661e****543cf",
    "BusinessId": "B****23",
    "RoomId": "Room1",
    "TaskId": "Task1",
    "UserId": "user1",
    "Token": "001661e****543cf80",
    "MaxIdleTime": 300,
    "Control" : {
        "StreamUrl": "rtmp://xxx",
        "MediaType": 0,
        "StreamMode": 0,
        "StartTimeStamp": 0,
        "Loop": false,
        "VideoWidth": 640,
        "VideoHeight": 480,
        "FrameRate": 15,
        "Bitrate": 6000
     }
}

返回示例

{
    "Result": "ok",
    "ResponseMetadata": {
        "RequestId": "20230****10420",
        "Action": "StartRelayStream",
        "Version": "2023-11-01",
        "Service": "rtc",
        "Region": "cn-north-1"
    }
}

错误码

您可访问公共错误码,获取更多错误码信息。