在你的音视频应用中,你可能会需要对房间中的音频流进行切片,供后续处理。比如,你可以对音频内容进行审核。
你可以使用 StartSegment 这个 OpenAPI 实现这一功能。
你也可以在控制台上开启自动切片功能,开启该功能后,若未设置业务标识,默认对房间内每个用户都进行全程切片。切片结果会上传到你选择的存储平台上。
你可以调用 StartSegment 接口,指定你所属的 AppId,对指定 RoomId 房间中的一路或多路音频流进行切片。
切片结果会上传到你指定的存储平台上,随后你指定的回调地址会收到切片的元数据信息。你可以在控制台上设置回调地址。有关回调结果的详细说明,参看SegmentRealTimeData。
在使用音频切片功能前,你必须已经在控制台上开启音频切片服务。
关于调用接口的服务地址、通信协议、字符编码和签名机制,参看调用OpenAPI。
QPS 不得超过 150。
使用 Post 方式发起请求。
| 参数名 | 类型 | 必填 | 示例值 | 描述 |
|---|---|---|---|---|
| Action | String | 是 | StartSegment | 接口名称,本接口取值:StartSegment |
| Version | String | 是 | 2022-06-01 | 接口版本,本接口取值:2022-06-01 |
| 参数名 | 类型 | 必填 | 示例值 | 描述 | 备注 |
|---|---|---|---|---|---|
| AppId | String | 是 | Your_AppId | 应用的唯一标志 | |
| BusinessId | String | 否 | Your_BusinessId | 业务标识。添加 BusinessId 后,你可以在控制台上查看根据 BusinessId 划分的质量和用量数据。 | |
| RoomId | String | 是 | Your_RoomId | 房间 ID,是房间的唯一标志 | |
| TaskId | String | 是 | Your_TaskId | 截图任务 ID。你可以自行设定 TaskId 以区分不同的切片任务,且在后续更新和结束任务时也须使用该 TaskId。关于 TaskId 的详细说明,参看 TaskId说明。 关于 TaskId 及以上 Id 字段的命名规则,参看 ID。 | 参看备注1 |
| MaxIdleTime | Uint32 | 否 | 180 | 任务最大的空闲超时时间。如果切片任务订阅的所有流都已停止发布,那么任务会在空闲时间超过设定值后自动停止。值的范围为[1, 86400] ,单位为秒。默认值为 180秒。值不合法时,自动调整为默认值。 | |
| TargetStreams | Streams | 否 | / | 你可以通过本参数设定需要切片的音频流。如果参数为空,默认对房间内所有发布的音频流进行切片。最多17路音频流。 | 参看备注2 与备注3 |
| Duration | Uint32 | 否 | 20 | 每个音频切片的时长。单位为秒。范围为 [1, 600],默认值为 20秒。值不合法时,自动调整为默认值。 | |
| StorageConfig | StorageConfig | 是 | / | 存储平台设置。当前切片功能仅支持存储到火山引擎对象存储 TOS 平台和第三方存储平台,即 Type只可取值 0或2。 | |
| Control | Control(for segment) | 否 | 无 | 切片高级功能 | |
| Identifier | String | 否 | Your_Identifier | 自定义文件前缀。切片名设置详情,参看切片名设置规则。 | |
| Handle | Bool | 否 | true | 是否在开启音视频切片时,立刻开始切片。
true。 |
TaskId 是任务的标识,在一个 AppId 的 RoomId 下 TaskId 是唯一的,不同 AppId 或者不同 RoomId 下 TaskId 可以重复,因此 AppId + RoomId + TaskId 是任务的唯一标识,可以用来标识指定 AppId 下某个房间内正在运行的任务,从而能在此任务运行中停止此任务。
2. 如果在开启音频切片时指定了多路流,那么,切片时会针对屏幕流在内的每一路流进行切片。
3. 如果切片时,对应流的发布者关闭了麦克风,会产生静音文件,但若开启了切片对齐或忽略静音切片功能,则不会产生静音切片。
4. 切片名设置规则:
切片文件名由 Identifier + UserId + 时间戳 + 序号组成。默认情况下 Identifier 为 随机生成的 UUID。在自定义文件名时,Identifier 的命名规则参看ID。在自定义文件名时,你需确保 Identifier 命名全局唯一,否则在 TOS 平台会因文件名重复被覆盖。
https://rtc.volcengineapi.com?Action=StartSegment&&Version=2022-06-01
postscript{
"AppId": "Your_AppId",
"BusinessId": "Your_BusinessId",
"RoomId": "Your_RoomId",
"TaskId": "Your_TaskId",
"MaxIdleTime": 200,
"TargetStreams": {
"StreamList": [
{
"UserId": "user1",
"StreamType": 0
},
{
"UserId": "user1",
"StreamType": 1
}
]
},
"Duration": 20,
"StorageConfig": {
"Type": 2,
"CustomConfig": {
"Vendor": 0,
"Region": 0,
"Bucket": "Your_Bucket",
"AccessKey": "Your_AccessKey",
"SecretKey": "Your_SecretKey",
},
"Control" : {
"Align" : true,
"Mixed" : true,
"RedundantDuration" : 2,
"IgnoreSilence" : true
}
}
json返回值 Result 仅在请求成功时返回"ok",失败时为空。
{
"Result": "ok",
"ResponseMetadata": {
"RequestId": "Your_RequestId",
"Action": "StartSegment",
"Version": "2022-06-01",
"Service": "rtc",
"Region": "cn-north-1"
}
}
json