You need to enable JavaScript to run this app.
导航
开始单流转推 StartPushSingleStreamToCDN
最近更新时间:2024.03.15 11:53:20首次发布时间:2022.11.02 18:37:27

对于一个音视频通话,你可以将一路流通过 RTMP 协议推送到指定的 CDN 推流地址。
你可以使用 StartPushSingleStreamToCDN 这个 OpenAPI 实现这一功能。

注意:

  • 同一 TaskId 不能同时开启合流转推和单流转推任务。
  • 本功能会对音频编码,音频编码协议固定为 aac,音频声道数固定为双声道,音频采样率固定为44100
  • 本功能不对视频编码,所以推到 RTMP 的视频流会根据推流端的分辨率、编码方式、关闭摄像头等变化而变化。
  • 使用单流转推功能时,建议在移动端将采集视频帧的朝向设置为固定。参见移动端 API 文档。

使用说明

接口行为

你可以调用 StartPushSingleStreamToCDN 接口,将指定音视频房间内的指定音视频流推送至指定的地址。
单流转推状态变化后,你在 RTC 控制台上指定的 url 地址会收到来自 RTC 服务端的消息回调,相关事件的信息包含在回调字段中。有关回调结果的详细说明,参看TranscodeStarted

前置条件

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

调用接口

关于调用接口的请求结构、公共参数、签名算法和返回结构,参看调用方法

注意事项

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

请求说明

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

请求参数

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

Query

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

Body

参数
类型
是否必选
示例值
描述
AppId
String
Your_AppId
你的音视频应用的唯一标志
BusinessId
String
Your_BusinessId
业务标识
RoomId
String
Your_RoomId
房间的 ID,是房间的唯一标志
TaskId
String
Your_TaskId

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

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

关于 TaskId 及以上 Id 字段的命名规则符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128}
Stream
Object
房间内转推的流
UserId
String
Your_UserId
用户Id,表示这个流所属的用户。
StreamType
Integer
流的类型,值可以取01,默认值为00表示普通音视频流,1表示屏幕流。
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=2020-12-01

{
    "AppId": "Your_AppId",
    "BusinessId": "Your_BusinessId",
    "RoomId": "Your_RoomId",
    "TaskId": "Your_TaskId",
    "PushURL": "rtmp://xxx/xxx",
    "Stream": {
        "UserId": "Your_UserId",
        "StreamType": 0
    },
    "Control": {
        "MediaType": 0,
        "MaxIdleTime": 180
    }
}

返回示例

{
    "Result": "ok",
    "ResponseMetadata": {
        "RequestId": "Your_RequestId",
        "Action": "StartPushSingleStreamToCDN",
        "Version": "2020-12-01",
        "Service": "rtc",
        "Region": "cn-north-1"
    }
}

错误码

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