在你的音视频应用中,你可能会需要对房间内的实时音视频互动按一定时间间隔进行截图,供后续处理。比如,实现存证,鉴别非法信息。
你可以使用 StartSnapshot
这个 OpenAPI 实现这一功能。
你也可以在控制台上开启自动抽帧功能,开启该功能后,若未设置业务标识,默认对房间内每个用户都进行全程抽帧。截图结果会上传到你指定的存储平台。
你可以调用 StartSnapshot
接口,指定你所属的 AppId
,对指定 roomId
房间中指定的一路或多路视频流进行截图。
截图结果会上传到你指定的存储平台。你在控制台上设置的回调地址会收到每一张图片的元数据回调。有关回调结果的详细说明,参看SnapshotRealTimeData。
在使用抽帧截图功能前,你必须已经在控制台上开启抽帧截图服务。
请求频率:QPS 不得超过 150。
下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | StartSnapshot | 接口名称。当前 API 的名称为 StartSnapshot 。 |
Version | String | 是 | 2022-06-01 | 接口版本。当前 API 的版本为 2022-06-01 。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
AppId | String | 是 | Your_AppId | 应用的唯一标志 |
BusinessId | String | 否 | Your_BusinessId | 业务标识 |
RoomId | String | 是 | Your_RoomId | 房间 ID,是房间的唯一标志 |
TaskId | String | 是 | Your_TaskId | 截图任务 ID。你可以自行设定
[a-zA-Z0-9_@\-\.]{1,128} |
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 表示屏幕流。 |
MaxIdleTime | Integer | 否 | 180 | 任务最大的空闲超时时间。如果抽帧截图任务订阅的所有流都已停止发布,那么任务会在空闲时间超过设定值后自动停止。值的范围为[1, 86400] ,单位为秒。默认值为 180秒。值不合法时,自动调整为默认值。 |
ImageConfig | Object | 否 | - | 图片的相关配置:图片格式,尺寸和截图间隔时间。 如果截图时,对应流的尺寸(长宽)和设置的截图尺寸(长宽)不一致,那么,视频流原始截图会按比例缩放为指定的尺寸。 |
Format | Integer | 否 | 0 | 图片的格式。值可取 0 或 1 ,默认为 0 。选择 0 时,图片格式为 JEPG ;选择 1 时,图片格式为 PNG 。默认值为 0 。值不合法时,自动调整为默认值。 |
Width | Integer | 否 | 0 | 实际使用视频帧的宽度,单位为像素,取值范围为 [0, 1920] 。默认值为 0 ,此时,和视频流的实际宽度相同。值不合法时,自动调整为默认值。 |
Height | Integer | 否 | 0 | 实际使用视频帧的高度,单位为像素,取值范围为 [0, 1920] ,默认值为 0 ,此时,和视频流的实际高度相同。值不合法时,自动调整为默认值。 |
Interval | Integer | 否 | 2 | 相邻截图之间的间隔时间,单位为秒,取值范围为 [1, 600] ,默认值为 2 。值不合法时,自动调整为默认值。 |
StorageConfig | Object | 是 | - | 存储平台设置。当前截图功能仅支持存储到火山引擎对象存储TOS 、veImageX和 Amazon S3、 阿里云 OSS、华为云 OBS、腾讯云 COS 或七牛云 Kodo第三方存储平台],即 Type 只可取值 0 ,2 或3 。 |
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 |
本接口无特有的返回参数。公共返回参数请见返回结构。
其中返回值 Result
仅在请求成功时返回 ok
,失败时为空。
POST https://rtc.volcengineapi.com?Action=StartSnapshot&Version=2022-06-01 { "AppId": "Your_AppId", "BusinessId": "Your_BusinessId", "RoomId": "Your_RoomId", "TaskId": "Your_TaskId", "TargetStreams": { "StreamList": [ { "UserId": "user1", "StreamType": 0 }, { "UserId": "user2", "StreamType": 0 } ] }, "MaxIdleTime": 180, "ImageConfig": { "Format": 0, "Width": 800, "Height": 800, "Interval": 2 }, "StorageConfig": { "Type": 3, "VeImageXConfig": { "AccountId": "Your_AccountId", "Region": 0, "ServiceId": "Your_ServiceId" } } }
{ "Result": "ok", "ResponseMetadata": { "RequestId": "Your_RequestId", "Action": "StartSnapshot", "Version": "2022-06-01", "Service": "rtc", "Region": "cn-north-1" } }
您可访问公共错误码,获取更多错误码信息。