对于一个音视频通话,你可以将一路流通过 RTMP 协议推送到指定的 CDN 推流地址。

你可以使用 StartPushSingleStreamToCDN 这个 OpenAPI 实现这一功能。

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

你可以调用 StartPushSingleStreamToCDN 接口,将指定音视频房间内的指定音视频流推送至指定的地址。

单流转推状态变化后,你在 RTC 控制台上指定的 url 地址会收到来自 RTC 服务端的消息回调,相关事件的信息包含在回调字段中。有关回调结果的详细说明,参看TranscodeStarted 。

调用接口

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

请求方式

使用 Post 方式发起请求。

请求参数

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

Query
参数名类型必填示例值描述
ActionString是StartPushSingleStreamToCDN接口名称,本接口取值:StartPushSingleStreamToCDN
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
StreamStream是/房间内转推的流
PushURLString是rtmp://xxx/xxx推流地址。目前仅支持 rtmp 协议
ControlControl是/配置选项
TaskId 说明:

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

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

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

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