在你的音视频应用中,你可能会需要对房间中的音频流进行切片,供后续处理。比如,你可以对音频内容进行审核。
你可以使用 StartSegment
这个 OpenAPI 实现这一功能。
你也可以在控制台上开启自动切片功能,开启该功能后,若未设置业务标识,默认对房间内每个用户都进行全程切片。切片结果会上传到你选择的存储平台上。
你可以调用 StartSegment
接口,指定你所属的 AppId
,对指定 RoomId
房间中的一路或多路音频流进行切片。
切片结果会上传到你指定的存储平台上,随后你指定的回调地址会收到切片的元数据信息。你可以在控制台上设置回调地址。有关回调结果的详细说明,参看SegmentRealTimeData。
在使用音频切片功能前,你必须已经在控制台上开启音频切片服务。
请求频率:QPS 不得超过 60。
下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | StartSegment | 接口名称。当前 API 的名称为 StartSegment 。 |
Version | String | 是 | 2022-06-01 | 接口版本。当前 API 的版本为 2022-06-01 。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
AppId | String | 是 | Your_AppId | 应用的唯一标志 | ||||||||
BusinessId | String | 否 | Your_BusinessId | 业务标识。添加 BusinessId 后,你可以在控制台上查看根据 BusinessId 划分的质量和用量数据。 | ||||||||
RoomId | String | 是 | Your_RoomId | 房间 ID,是房间的唯一标志 | ||||||||
TaskId | String | 是 | Your_TaskId | 截图任务 ID。你可以自行设定
[a-zA-Z0-9_@\-\.]{1,128} | ||||||||
MaxIdleTime | Integer | 否 | 任务最大的空闲超时时间。 如果切片任务订阅的所有流都已停止发布,那么任务会在空闲时间超过设定值后自动停止。值的范围为[1, 86400] ,单位为秒。默认值为 180 秒。值不合法时,自动调整为默认值。 | |||||||||
TargetStreams | Object | 否 | - | 房间内需要切片的音频流。如果参数为空,默认对房间内所有发布的音频流进行切片。最多17路音频流。 如果在开启音频切片时指定了多路流,那么,切片时会针对屏幕流在内的每一路流进行切片。 如果切片时,对应流的发布者关闭了麦克风,会产生静音文件,但若开启了切片对齐或忽略静音切片功能,则不会产生静音切片。 | ||||||||
StreamList | Object[] | 否 | 由 Stream 组成的列表,可以为空。为空时,表示订阅房间内所有流。在一个 StreamList 中,Stream.Index 不能重复。 | |||||||||
Index | Integer | 否 | 0 | 在自定义布局中,使用 Index 对流进行标志。后续在 Layout.regions.StreamIndex 中,你需要使用 Index 指定对应流的布局设置。 | ||||||||
UserId | String | 是 | Your_UserId | 用户Id,表示这个流所属的用户。 | ||||||||
StreamType | Integer | 否 | 0 | 流的类型,值可以取 0 或1 ,默认值为0 。0 表示普通音视频流,1 表示屏幕流。 | ||||||||
Duration | Integer | 否 | 20 | 每个音频切片的时长。单位为秒。范围为 [1, 600] ,默认值为 20秒 。值不合法时,自动调整为默认值。 | ||||||||
StorageConfig | Object | 是 | / | 存储平台设置。当前切片功能仅支持存储到 Tos 平台和第三方存储平台,即 Type 只可取值 0 或2 。 | ||||||||
Type | Integer | 否 | 0 | 存储平台类型
| ||||||||
TosConfig | Object | 否 | - | 当 Type = 0 时,需正确设置 TosConfig 的值,否则请求会报错 | ||||||||
AccountId | String | 是 | Your_AccountId | 火山引擎平台账号 ID,例如:
| ||||||||
Region | Integer | 否 | 0 | 不同存储平台支持的 Region 不同,具体参看 Region对照表 默认值为0 。 | ||||||||
Bucket | String | 是 | Your_Bucket | 存储桶的名称。 | ||||||||
VodConfig | Object | 否 | - | 当 Type = 1 时,需正确设置 VodConfig 的值,否则请求会报错 | ||||||||
AccountId | String | 是 | Your_AccountId | 火山引擎平台账号 ID,例如:
| ||||||||
Region | Integer | 否 | 不同存储平台支持的 Region 不同,具体参看 Region对照表 默认值为0 。 | |||||||||
Space | String | 是 | Your_Space | 点播空间名称。 | ||||||||
CustomConfig | Object | 否 | - | 当 Type = 2 时,需正确设置 CustomConfig 的值,否则请求会报错 | ||||||||
Vendor | Integer | 否 | 0 | 第三方云存储平台。
| ||||||||
Region | Integer | 否 | 0 | 不同存储平台支持的 Region 不同,具体参看 Region对照表 默认值为0 。 | ||||||||
Bucket | String | 是 | Your_Bucket | 存储桶的名称。 | ||||||||
AccessKey | String | 是 | Your_AccessKey | 第三方存储平台账号的密钥。需确保此账号对存储桶有写权限。不建议开启读权限 | ||||||||
SecretKey | String | 是 | Your_SecretKey | 第三方存储平台账号的密钥 | ||||||||
VeImageXConfig | Object | 否 | - | 当 Type = 3 时,需正确设置 VeImageXConfig 的值,否则请求会报错 | ||||||||
AccountId | String | 是 | Your_AccountId | 火山引擎平台账号 ID,例如:
| ||||||||
Region | Integer | 否 | 不同存储平台支持的 Region 不同,具体参看 Region对照表 默认值为0 。 | |||||||||
ServiceId | String | 是 | Your_ServiceId | |||||||||
Control | Object | 否 | / | 切片高级功能 | ||||||||
Align | Boolean | 否 | false | 是否开启切片对齐功能。默认为
| ||||||||
Mixed | Boolean | 否 | false | 是否开启合流切片功能。默认为
不同平台的回调参看:
| ||||||||
IgnoreSilence | Boolean | 否 | false | 是否忽略静音切片。默认值为 false | ||||||||
RedundantDuration | Integer | 否 | 2 | 冗余切片时长,单位为毫秒。 当前 RTC 按照传入的Duration 值进行固定时长切片,可能存在敏感词被截断,未被识别的情况。此时你可以添加冗余切片,即上一段切片的末尾指定时长,来避免此情况,此时切片的时长变为RedundantDuration + Duration 。例如:当 Duration = 20 ,redundantDuration = 3 时,最终输出的前三个文件时长为:[0-20], [17-40], [37-60]。 | ||||||||
Identifier | String | 否 | Your_Identifier | 自定义文件前缀。 切片文件名由 Identifier + UserId + 时间戳 + 序号组成。默认情况下 Identifier 为 随机生成的 UUID 。在自定义文件名时,Identifier 的命名规则符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128} 。在自定义文件名时,你需确保 Identifier 命名全局唯一,否则在 TOS 平台会因文件名重复被覆盖。 | ||||||||
Handle | Boolean | 否 | false | 是否在开启音视频切片时,立刻开始切片。 true 为在开启音视频切片时,立刻开启切片;false 时,在开启音视频切片时,不开始切片,热启动任务。 默认值为true 。 |
本接口无特有的返回参数。公共返回参数请见返回结构。
其中返回值 Result
仅在请求成功时返回 ok
,失败时为空。
POST https://rtc.volcengineapi.com?Action=StartSegment&Version=2022-06-01 { "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 } }
{ "Result": "ok", "ResponseMetadata": { "RequestId": "Your_RequestId", "Action": "StartSegment", "Version": "2022-06-01", "Service": "rtc", "Region": "cn-north-1" } }
您可访问公共错误码,获取更多错误码信息。