本文档 API 接口为最新版本接口,后续相关功能的新增都会在此更新,推荐使用最新版本接口。旧版接口文档请参考历史版本。

在你的音视频应用中,你可能会需要对房间内的实时音视频互动按一定时间间隔进行截图,供后续处理。比如,实现存证,鉴别非法信息。

你可以使用 StartSnapshot 这个 OpenAPI 实现这一功能。

你也可以在控制台上开启自动抽帧功能,开启该功能后,若未设置业务标识,默认对房间内每个用户都进行全程抽帧。截图结果会上传到你指定的存储平台。

使用说明
接口行为

你可以调用 StartSnapshot 接口,指定你所属的 AppId,对指定 roomId 房间中指定的一路或多路视频流进行截图。
截图结果会上传到你指定的存储平台。你在控制台上设置的回调地址会收到每一张图片的元数据回调。有关回调结果的详细说明,参看SnapshotRealTimeData。

前置条件

在使用抽帧截图功能前,你必须已经在控制台上开启抽帧截图服务。

调用接口

关于调用接口的服务地址、通信协议、字符编码和签名机制,参看调用OpenAPI。

注意事项

请求频率:QPS 不得超过 150。

请求说明
请求参数

下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。

Query
参数类型是否必选示例值描述
ActionString是StartSnapshot接口名称。当前 API 的名称为 StartSnapshot。
VersionString是2022-06-01接口版本。当前 API 的版本为 2022-06-01。
Body
参数类型是否必选示例值描述
AppIdString是Your_AppId应用的唯一标志
BusinessIdString否Your_BusinessId业务标识
RoomIdString是Your_RoomId房间 ID,是房间的唯一标志

TaskId

String

是

Your_TaskId

截图任务 ID。你可以自行设定 TaskId 以区分不同的切片任务,且在后续进行任务更新和结束时也须使用该 TaskId。
TaskId 是任务的标识,在一个 AppId 的 RoomId 下 taskId 是唯一的,不同 AppId 或者不同 RoomId 下 TaskId 可以重复,因此 AppId + RoomId + TaskId 是任务的唯一标识,可以用来标识指定 AppId 下某个房间内正在运行的任务,从而能在此任务运行中进行更新或者停止此任务。
关于 TaskId 及以上 Id 字段的命名规则符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128}

TargetStreamsObject of Streams否-你可以通过本参数设定需要截图的视频流。如果参数为空,默认对房间内所有人进行截图。最多17路视频流。
MaxIdleTimeInteger否任务最大的空闲超时时间。如果抽帧截图任务订阅的所有流都已停止发布,那么任务会在空闲时间超过设定值后自动停止。值的范围为[1, 86400] ,单位为秒。默认值为 180秒。值不合法时,自动调整为默认值。

ImageConfig

Object of VeImageXConfig

否

-

图片的相关配置:图片格式,尺寸和截图间隔时间。
如果截图时,对应流的尺寸(长宽)和设置的截图尺寸(长宽)不一致,那么,视频流原始截图会按比例缩放为指定的尺寸。

StorageConfigObject of StorageConfig是-存储平台设置。当前截图功能仅支持存储到火山引擎对象存储TOS 、veImageX和 Amazon S3、 阿里云 OSS、华为云 OBS、腾讯云 COS 或七牛云 Kodo第三方存储平台],即 Type只可取值 0,2或3。
Streams
参数类型是否必选示例值描述
StreamListArray of Stream否由Stream组成的列表,可以为空。为空时,表示订阅房间内所有流。在一个 StreamList 中,Stream.Index 不能重复。
VeImageXConfig
参数类型是否必选示例值描述

AccountId

String

是

Your_AccountId

火山引擎平台账号 ID,例如:200000000。

  • 火山引擎平台账号 ID 查看路径:控制台->账号管理->账号信息
    alt
  • 此账号 ID 为火山引擎主账号 ID。
  • 若你调用 OpenAPI 鉴权过程中使用的 AK、SK 为子用户 AK、SK,账号 ID 也必须为火山引擎主账号 ID,不能使用子用户账号 ID。

Region

Integer

否

不同存储平台支持的 Region 不同,具体参看 Region对照表
默认值为0。

ServiceId

String

是

Your_ServiceId

服务 ID。- 你可以在 veImageX 控制台 服务管理页面,通过创建好的图片服务中获取服务 ID。

你也可以通过 OpenAPI 的方式获取服务 ID,具体请参考获取所有服务信息。

StorageConfig
参数类型是否必选示例值描述

Type

Integer

否

0

存储平台类型

TosConfigObject of TosConfig否-当 Type = 0 时,需正确设置 TosConfig 的值,否则请求会报错
VodConfigObject of VodConfig否-当 Type = 1 时,需正确设置 VodConfig 的值,否则请求会报错
CustomConfigObject of CustomConfig否-当 Type = 2时,需正确设置 CustomConfig 的值,否则请求会报错
VeImageXConfigObject of VeImageXConfig否-当 Type = 3时,需正确设置 VeImageXConfig 的值,否则请求会报错
Stream
参数类型是否必选示例值描述
IndexInteger否0在自定义布局中,使用 Index 对流进行标志。后续在 Layout.regions.StreamIndex 中,你需要使用 Index 指定对应流的布局设置。
UserIdString是Your_UserId用户Id,表示这个流所属的用户。
StreamTypeInteger否0流的类型,值可以取0或1,默认值为0。0表示普通音视频流,1表示屏幕流。
TosConfig
参数类型是否必选示例值描述

AccountId

String

是

Your_AccountId

火山引擎平台账号 ID,例如:200000000。

  • 火山引擎平台账号 ID 查看路径:控制台->账号管理->账号信息
    alt
  • 此账号 ID 为火山引擎主账号 ID。
  • 若你调用 OpenAPI 鉴权过程中使用的 AK、SK 为子用户 AK、SK,账号 ID 也必须为火山引擎主账号 ID,不能使用子用户账号 ID。

Region

Integer

否

0

不同存储平台支持的 Region 不同,具体参看 Region对照表
默认值为0。

BucketString是Your_Bucket存储桶的名称。
VodConfig
参数类型是否必选示例值描述

AccountId

String

是

Your_AccountId

火山引擎平台账号 ID,例如:200000000。

  • 火山引擎平台账号 ID 查看路径:控制台->账号管理->账号信息
    alt
  • 此账号 ID 为火山引擎主账号 ID。
  • 若你调用 OpenAPI 鉴权过程中使用的 AK、SK 为子用户 AK、SK,账号 ID 也必须为火山引擎主账号 ID,不能使用子用户账号 ID。

Region

Integer

否

不同存储平台支持的 Region 不同,具体参看 Region对照表
默认值为0。

SpaceString是Your_Space点播空间名称。
CustomConfig
参数类型是否必选示例值描述

Vendor

Integer

否

0

第三方云存储平台。

  • 0: Amazon S3
  • 1: 阿里云 OSS
  • 2:华为云 OBS
  • 3:腾讯云 COS
  • 4:七牛云 Kodo。
    默认值为 0。

Region

Integer

否

0

不同存储平台支持的 Region 不同,具体参看 Region对照表
默认值为0。

BucketString是Your_Bucket存储桶的名称。
AccessKeyString是Your_AccessKey第三方存储平台账号的密钥。需确保此账号对存储桶有写权限。不建议开启读权限
SecretKeyString是Your_SecretKey第三方存储平台账号的密钥
返回参数

本接口无特有的返回参数。公共返回参数请见返回结构。
其中返回值 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"
        }
    }
}
json
返回示例
{
    "Result": "ok",
    "ResponseMetadata": {
        "RequestId": "Your_RequestId",
        "Action": "StartSnapshot",
        "Version": "2022-06-01",
        "Service": "rtc",
        "Region": "cn-north-1"
    }
}
json
错误码

您可访问公共错误码,获取更多错误码信息。