在你的音视频应用中,你可能会需要对房间内的实时音视频互动按一定时间间隔进行截图,供后续处理。比如,实现存证,鉴别非法信息。
你可以使用 StartSnapshot 这个 OpenAPI 实现这一功能。
你也可以在控制台上开启自动抽帧功能,开启该功能后,若未设置业务标识,默认对房间内每个用户都进行全程抽帧。截图结果会上传到对象存储(TOS)平台。
你可以调用 StartSnapshot 接口,指定你所属的 AppId,对指定 roomId 房间中指定的一路或多路视频流进行截图。
截图结果会上传到对象存储(TOS)平台。你在控制台上设置的回调地址会收到每一张图片的元数据回调。有关回调结果的详细说明,参看SnapshotRealTimeData。
关于调用接口的服务地址、通信协议、字符编码和签名机制,参看调用OpenAPI。
QPS 不得超过 150。
使用 Post 方式发起请求。
以下是接口特有的请求参数。关于其他公共请求参数,参看请求参数。
| 参数名 | 类型 | 必填 | 示例值 | 描述 |
|---|---|---|---|---|
| Action | String | 是 | StartSnapshot | 接口名称,本接口取值: StartSnapshot |
| Version | String | 是 | 2020-12-01 | 接口版本,本接口取值:2020-12-01 |
| 参数名 | 类型 | 必填 | 示例值 | 描述 | 备注 |
|---|---|---|---|---|---|
| AppId | String | 是 | Your_AppId | 应用的唯一标志 | |
| BusinessId | String | 否 | Your_BusinessId | 业务标识 | |
| RoomId | String | 是 | Your_RoomId | 房间 ID,是房间的唯一标志 | |
| TaskId | String | 是 | Your_TaskId | 截图任务 ID。你可以自行设定 TaskId 以区分不同的切片任务,且在后续进行任务更新和结束时也须使用该 TaskId。关于 TaskId 的详细说明,参看备注 1 。 关于 TaskId 及以上 Id 字段的命名规则,参看 ID。 | |
| TargetStreams | Streams | 否 | / | 你可以通过本参数设定需要截图的视频流。如果参数为空,默认对房间内所有人进行截图。最多17路视频流。 | 参看备注2 |
| MaxIdleTime | uint32 | 否 | 180 | 任务最大的空闲超时时间。如果抽帧截图任务订阅的所有流都已停止发布,那么任务会在空闲时间超过设定值后自动停止。值的范围为[1, 86400] ,单位为秒。默认值为 180秒。值不合法时,自动调整为默认值。 | |
| ImageConfig | ImageConfig | 否 | / | 图片的相关配置:图片格式,尺寸和截图间隔时间。 | 参看备注3 |
| TosConfig | TosConfig | 是 | / | TOS 的相关配置。 | 你必须在 TOS 处进行了相关配置后,才能使用抽帧截图功能。 |
TaskId 是任务的标识,在一个 AppId 的 RoomId 下 taskID 是唯一的,不同 AppId 或者不同 RoomId 下 TaskId 可以重复,因此 AppId + RoomId + TaskId 是任务的唯一标识,可以用来标识指定 AppId 下某个房间内正在运行的任务,从而能在此任务运行中停止此任务。
https://rtc.volcengineapi.com?Action=StartSnapshot&&Version=2020-12-01
{
"AppId": "Your_AppId",
"BusinessId": "Your_BusinessId",
"RoomId": "Your_RoomId",
"TaskId": "Your_TaskId",
"TargetStreams": {
"StreamList": [
{
"UserId": "user1",
"StreamType": 0
},
{
"UserId": "user2",
"StreamType": 1
}
]
},
"MaxIdleTime": 180,
"ImageConfig": {
"Format": 0,
"Width": 800,
"Height": 800,
"Interval": 2
},
"TosConfig": {
"UserAccountId": "Your_AccountId",
"Region": "Your_BucketRegion",
"EndPoint": "Your_BucketEndPoint",
"Bucket": "Your_Bucket"
}
}
返回值 Result 仅在请求成功时返回"ok",失败时为空。
{
"Result": "ok",
"ResponseMetadata": {
"RequestId": "Your_RequestId",
"Action": "StartSnapshot",
"Version": "2020-12-01",
"Service": "rtc",
"Region": "cn-north-1"
}
}