- 文档首页
实时音视频
实时音视频
服务端 API 参考
输入在线媒体流
开始输入在线媒体流 StartRelayStream
输入在线媒体流
开始输入在线媒体流 StartRelayStream
开始输入在线媒体流 StartRelayStream
本文档 API 接口为最新版本接口,后续相关功能的新增都会在此更新,推荐使用最新版本接口。旧版接口文档请参考历史版本。 调用 StartRelayStream 接口,将一个在线媒体流拉取并输入到指定的 RTC 房间或 WTN 网络中。功能配置说明,请参见输入在线媒体流。 使用说明
注意事项
- 任务生效时间限制:调用本接口启动推送任务后最长运行 72 小时,到期后将自动停止,并通过回调告知具体信息。
请求说明
- 请求地址:https://rtc.volcengineapi.com?Action=StartRelayStream&Version=2023-11-01
调试
API Explorer
您可以通过 API Explorer 在线发起调用,无需关注签名生成过程,快速获取调用结果。
请求参数
下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。 Action String 必选 示例值:StartRelayStream
接口名称。当前 API 的名称为 StartRelayStream。
Version String 必选 示例值:2023-11-01
接口版本。当前 API 的版本为 2023-11-01。
AppId String 必选 示例值:66****cf
应用 ID。根据推送目标不同,AppId 要求如下:
- 推送至 RTC 房间:必须为 RTC 的应用 ID。
- 推送至 WTN:可使用 RTC 的应用 ID 或 WTN 的应用 ID。
Token String 必选 示例值:00****f80
鉴权凭证。用于校验调用者的合法性,需要你自己生成。
Token 的生成算法需匹配所选 AppId 类型:
- 若使用 WTN 的 AppId:请参见接口鉴权。
BusinessId String 可选 示例值:BD****23
业务标识 ID,用于区分不同业务。
- 若使用 RTC 的 AppId:填入在 RTC 控制台 创建的 BusinessId。
- 若使用 WTN 的 AppId:填入在 WTN 控制台 创建的 BusinessId。
TaskId String 可选 示例值:Task1
输入在线媒体流任务 ID。
由您自定义,用于标识和管理(更新、停止)该任务。
- 命名规范:符合正则表达式 [a-zA-Z0-9_@\-\.]{1,128}。
- 唯一性规则:在同一个 AppId 和 RoomId 组合下,TaskId 必须唯一。
任务运行中,使用相同 TaskId 重复调用该接口,系统将返回提示而非报错。
RoomId String 可选 示例值:Room1
在线媒体流需要被推送至的目标 RTC 房间的 ID。
UserId String 可选 示例值:User1
需要你自定义,用于标识推送至 RTC 房间的在线媒体流。发起任务后,服务端会用该 ID 作为虚拟用户加入 RTC 房间,客户端也可通过此 ID 在房间订阅该流。命名规范请参见参数赋值规范。 WtnStreamId String 可选 示例值:wtn_live_stream_01
自定义 WTN 流的 ID,用于在 WTN 网络中唯一标识该流。
仅支持中英文字母和数字,不支持 _、- 等任何特殊字符。
Control Object 必选 示例值:-
配置在线媒体流的流媒体地址、媒体类型、流处理模式、视频参数等。
StreamUrl String 必选 示例值:rtmp://xxx
在线流媒体地址。
- 支持的媒体格式为:hls、rtmp、mp4、flv、dash、ts 或 mp3。
- 如源流为海外,建议联系技术支持,以保障最佳体验。
MediaType Integer 可选 示例值:0
媒体类型。
- 1:音频。采用此选项时,必须是 AAC 或 Opus 编码。
StreamMode Integer 可选 示例值:0
流处理模式。
- 0(默认值):转码。采用此选项时,原视频编码方式必须是 H.264 或 ByteVC1。
- 1:转封装。采用此选项时,原视频编码方式必须是 H.264。转封装时,源流的视频关键帧间隔若过大,会影响 RTC 体验,建议 1s,但最大不超过 5s。
StartTimeStamp Integer 可选 示例值:0
任务定时启动的 Unix 时间戳(秒),用于定时播放。
默认为 0,表示立即启动。
Loop Boolean 可选 示例值:false
是否循环播放,仅对源流为点播流时生效。默认为 false(不循环)。
VideoWidth Integer 可选 示例值:640
视频宽度。当 StreamMode 为 0(转码)时必填。
单位为像素,范围为 [16, 1920],必须是偶数,值为奇数时自动调整为偶数。
VideoHeight Integer 可选 示例值:480
视频高度,转码时必填。
单位为像素,范围为 [16, 1920],必须是偶数,值为奇数时自动调整为偶数。
FrameRate Integer 可选 示例值:15
发送帧率,值的范围为 [1,30],默认值为 15,转码时生效。
Bitrate Integer 可选 示例值:6000
最大发送码率,单位为 Kbps,不填则不限制,转码时生效。
IsPause Boolean 可选 示例值:false
是否暂停播放媒体流源文件:
- 在暂停状态下,不会触发 MaxIdleTime 任务空闲超时时间停止任务,因此暂停时也会正常计费。如果不再需要输入在线媒体流,可直接调用StopRelayStream 接口结束播放任务。
注意
该功能仅当媒体流为点播流且 StreamMode=0时生效。
DataStreamOptions Object 可选 示例值:-
点播数据流回调播放进度信息配置。
Enable Boolean 可选 示例值:false
是否通过数据流回调播放进度信息。
- 开启该功能后,RTC 按照你设置的 IntervalTime 定期通过 sendRoomBinaryMessage 向房间内所有其他用户发送播放进度信息。发送内容为二进制消息,使用 protobuf 编码,解析后的格式如下:
message PositionData {
// 点播文件时长,单位为秒。
int32 duration = 1;
// 点播文件当前播放进度,单位为秒。
int32 position = 2;
// 发布者 UserId
string uid = 3;
}
IntervalTime Integer 可选 示例值:500
回调播放进度信息间隔,取值范围为 [200, 2000],单位为毫秒,默认值为 500。
Volume Integer 可选 示例值:100
在线媒体流播放音量,范围是 [0, 400],单位为 %。
MaxIdleTime Integer 可选 示例值:300
任务的空闲超时时间。超过此时间后,任务自动终止。取值范围为 [5, 600] ,单位为秒,默认值为 300。
返回参数
本接口无特有的返回参数。公共返回参数请见返回结构。 其中返回值 Result 仅在请求成功时返回 ok,失败时为空。
请求示例
POST https://rtc.volcengineapi.com?Action=StartRelayStream&Version=2023-11-01
"BusinessId": "BD***23",
"StreamUrl": "rtmp://xxx",
返回示例
"RequestId": "20230604110420",
"Action": "StartRelayStream",
"Version": "2023-11-01",
请求示例
POST https://rtc.volcengineapi.com?Action=StartRelayStream&Version=2023-11-01
"AppId": "661e****543cf",
"Token": "your_rtc_token",
"StreamUrl": "http://example.com/live/news.flv",
返回示例
"RequestId": "20230604110420****100232280022D31",
"Action": "StartRelayStream",
"Version": "2023-11-01",
请求示例
POST https://rtc.volcengineapi.com?Action=StartRelayStream&Version=2023-11-01
"AppId": "your_wtn_appId",
"Token": "your_wtn_token",
"StreamUrl": "http://example.com/live/news.flv",
返回示例
"RequestId": "20230604110420****100232280022D31",
"Action": "StartRelayStream",
"Version": "2023-11-01",
错误码
最近更新时间:2026.09.28 10:19:27