You need to enable JavaScript to run this app.
导航
开始单流转推 StartPushSingleStreamToCDN
最近更新时间:2024.07.16 15:31:21首次发布时间:2024.01.03 20:25:16

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

在实时音视频通话场景中,你可以通过调用此接口实现将指定音视频房间内的一路流推送至指定的 CDN 推流地址。

通过此接口,你可以指定应用标识、业务标识、房间 ID、转推任务 ID、用户 ID、流类型、推流地址以及配置选项,以实现单流转推任务。接口调用后,接口返回操作结果,确认任务是否成功,同时你在控制台设置的回调地址会接收任务状态相关回调

使用说明

接口行为

同一 TaskId 不能同时开启合流转推和单流转推任务。
本功能会对音频编码,音频编码协议固定为 aac,音频声道数固定为双声道,音频采样率固定为44100
本功能不对视频编码,所以推到 RTMP 的视频流会根据推流端的分辨率、编码方式、关闭摄像头等变化而变化。

使用单流转推功能时,建议在移动端将采集视频帧的朝向设置为固定。参见移动端 API 文档。

前置条件

在使用单流转推功能前,你必须在控制台上开通转推直播服务。

注意事项

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

请求说明

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

调试

请求参数

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

Query

参数
类型
是否必选
示例值
描述
Action
String
StartPushSingleStreamToCDN
接口名称。当前 API 的名称为 StartPushSingleStreamToCDN
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
Stream
Object
-
房间内转推的流
UserId
String
user1
用户Id,表示这个流所属的用户。
StreamType
Integer
0

流的类型。支持取值及含义如下:

  • 0:普通音视频流,
  • 1:屏幕流。
默认值为0
PushURL
String
rtmp://xxx/xxx
推流地址。目前仅支持 rtmp 协议
Control
Object
配置选项
MediaType
Integer
0
流的类型,用于全局控制订阅的流的类型。默认值为 0,可以取010表示音视频,1表示纯音频,暂不支持纯视频。
MaxIdleTime
Integer
180
任务的空闲超时时间,超过此时间后,任务自动终止。取值范围为 [10, 86400], 单位为秒,默认值为 180

返回参数

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

请求示例

POST https://rtc.volcengineapi.com?Action=StartPushSingleStreamToCDN&Version=2023-11-01
{
    "AppId": "661e****543cf",
    "BusinessId": "B****23",
    "RoomId": "Room1",
    "TaskId": "Task1",
    "PushURL": "rtmp://xxx/xxx",
    "Stream": {
        "UserId": "user1",
        "StreamType": 0
    },
    "Control": {
        "MediaType": 0,
        "MaxIdleTime": 180
    }
}

返回示例

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

错误码

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