对于一个音视频通话,你可以将一路流通过 RTMP 协议推送到指定的 CDN 推流地址。
你可以使用 StartPushSingleStreamToCDN
这个 OpenAPI 实现这一功能。
注意:
- 同一 TaskId 不能同时开启合流转推和单流转推任务。
- 本功能会对音频编码,音频编码协议固定为
aac
,音频声道数固定为双声道,音频采样率固定为44100
。- 本功能不对视频编码,所以推到 RTMP 的视频流会根据推流端的分辨率、编码方式、关闭摄像头等变化而变化。
- 使用单流转推功能时,建议在移动端将采集视频帧的朝向设置为固定。参见移动端 API 文档。
- Android: setVideoOrientation
- iOS: setVideoOrientation:
你可以调用 StartPushSingleStreamToCDN
接口,将指定音视频房间内的指定音视频流推送至指定的地址。
单流转推状态变化后,你在 RTC 控制台上指定的 url 地址会收到来自 RTC 服务端的消息回调,相关事件的信息包含在回调字段中。有关回调结果的详细说明,参看TranscodeStarted 。
在使用单流转推功能前,你必须在控制台上开通转推直播服务。
关于调用接口的请求结构、公共参数、签名算法和返回结构,参看调用方法。
请求频率:QPS 不得超过 150。
下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。
参数名称 | 数据类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | StartPushSingleStreamToCDN | 接口名称。当前 API 的名称为 StartPushSingleStreamToCDN 。 |
Version | String | 是 | 2020-12-01 | 接口版本。当前 API 的版本为 2020-12-01 。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
AppId | String | 是 | Your_AppId | 你的音视频应用的唯一标志 |
BusinessId | String | 否 | Your_BusinessId | 业务标识 |
RoomId | String | 是 | Your_RoomId | 房间的 ID,是房间的唯一标志 |
TaskId | String | 是 | Your_TaskId | 转推任务 ID。你必须对每个转推任务设定 TaskId,且在后续进行任务结束时也须使用该 TaskId。
[a-zA-Z0-9_@\-\.]{1,128} |
Stream | Object | 是 | 房间内转推的流 | |
UserId | String | 否 | Your_UserId | 用户Id,表示这个流所属的用户。 |
StreamType | Integer | 否 | 流的类型,值可以取 0 或1 ,默认值为0 。0 表示普通音视频流,1 表示屏幕流。 | |
PushURL | String | 是 | rtmp://xxx/xxx | 推流地址。目前仅支持 rtmp 协议 |
Control | Object | 是 | 配置选项 | |
MediaType | Integer | 否 | 0 | 流的类型,用于全局控制订阅的流的类型。默认值为 0 ,可以取0 和1 。0 表示音视频,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" } }
您可访问公共错误码,获取更多错误码信息。