在在线课堂、视频会议等场景中,你可能需要云录屏功能,对整个网页进行录制,实时生成整体课堂/会议直播间画面。

录制生成的文件会存储到对象存储(TOS)平台。如果你需要转码、抽帧、切片等高级服务,可以将录制生成的文件同时存储到视频点播平台。

开启云录屏功能后,如果录制完成或失败,你在 RTC 控制台上指定的 url 地址会收到来自 RTC 服务端的消息回调,相关事件的信息包含在回调字段中。有关回调结果的详细说明,参看WebRecordResult。

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

云录屏功能仅会录制你输入网页的页面内容,所见即所得。

接口行为

你可以使用 StartWebRecord 接口,发起录屏任务,对指定网页进行云录屏。

前置条件

在开始录制前,你需要在 RTC 控制台授权视频点播和对象存储。

调用接口

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

接口限制

QPS 不得超过 150。

请求方式

使用 POST 方式发起请求。

请求参数
Query
参数名类型必填示例值描述
ActionString是StartWebRecord接口名称,本接口取值:StartWebRecord
VersionString是2020-12-01接口版本,本接口取值:2020-12-01
Body
参数名类型必填示例值描述
AppIdstring是Your_AppId应用的唯一标志
TaskIdstring是Your_TaskId任务 ID,是任务的唯一标志。你必须对每个云录屏任务设定 TaskId,且在后续进行任务结束时也须使用该 TaskId。关于 TaskId 的详细说明,参看TaskId说明 。
关于 TaskId 及以上 Id 字段的命名规则,参看 ID。
InputURLstring是[http://www.xxx.xxx/xxx/xxx.html](http://www.xxx.xxx/xxx/xxx.html)录制网页的 url 地址
MaxRecordSecondInteger否21600最大录制时长,单位为秒。取值范围为[10,43200],默认值为 21600。
JsCommandList否["windows.startRecord","windows.location.herf=/1.html"]页面加载后的 js 命令集合,总长度不超过 2000 个字符。
BucketString是Your_Bucket存储桶名称。
VideoSpaceString否/点播平台上指定的点播空间
VideoInfoVideoInfo否生成视频参数信息
PageInfoPageInfo否录制网页参数信息
DurationInteger否60分片间隔时间,单位为秒。取值范围为 [10,3600],默认值为 60,不传时自动设置成默认值。现无法保证间隔空间完全准确,误差在 10秒以内。
TaskId 说明:

TaskId 是任务的标识,在一个 AppId 的 RoomId 下 taskID 是唯一的,不同 AppId 或者不同 RoomId 下 TaskId 可以重复,因此 AppId + RoomId + TaskId 是任务的唯一标识,可以用来标识指定 AppId 下某个房间内正在运行的任务,从而能在此任务运行中进行更新或者停止此任务。

请求示例代码
Query
https://rtc.volcengineapi.com?Action=StartWebRecord&Version=2020-12-01
postscript
Body
{
    "AppId" : "Your_AppId",
    "TaskId" : "Your_TaskId",   
    "InputURL" : "http://www.xxx.xxx/xxx/xxx.html",
    "MaxRecordSecond": 7200,
    "JsCommand": ["windows.startRecord","windows.location.herf=/1.html"],
    "VideoSpace" : "Your_VideoSpace",
    "Bucket" : "Your_Bucket",
    "Duration" : 60,
    "VideoInfo":{
        "ResolutionWidth": 1920,
        "ResolutionHeight": 1080
    },
    "PageInfo":{
        "PageWidth": 1920,
        "PageHeight": 1080
    }
}
json
返回调用结果

返回值 Result 仅在请求成功时返回"success",失败时为空。

正常返回示例
{
    "ResponseMetadata": {
        "RequestId": "Your_RequestId",
        "Action": "StartWebRecord",
        "Version": "2020-12-01",
        "Service": "rtc",
        "Region": "cn-north-1"
    },
    "Result":{
        "Message": "success",
        "EventData": {
            "TaskId": "Your_TaskId"
        }
    }
}
json