You need to enable JavaScript to run this app.
导航
开启云录屏 StartWebcast
最近更新时间:2024.07.16 15:31:21首次发布时间:2024.01.03 20:25:16

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

在实时音视频通话场景中,例如在线教育或远程会议,你可以通过调用此接口实现网页音视频内容的推送至 RTC 房间

通过设定应用标识、业务标识、房间 ID、任务 ID、用户 ID 以及网页源地址等信息,你能够将指定的网页内容转推到RTC房间。此外,通过配置你可以控制输出流的视频参数,如分辨率、帧率和码率。接口还提供了页面可用性监控和事件通知配置,以增强稳定性和交互性。
你提供的源地址需要兼容 Chrome 浏览器,浏览器版本为 117.0.5938.92。

在首帧发送完成和任务结束时,你在控制台上设置的回调地址会收到相关回调。有关回调结果的详细说明,参看 Webcast

使用说明

接口行为

使用说明

注意事项

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

请求说明

  • 请求方式:POST
  • 请求地址:https://rtc.volcengineapi.com?Action=StartWebcast&Version=2023-11-01

调试

请求参数

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

Query

参数
类型
是否必选
示例值
描述
Action
String
StartWebcast
接口名称。当前 API 的名称为 StartWebcast
Version
String
2023-11-01
接口版本。当前 API 的版本为 2023-11-01

Body

参数
类型
是否必选
示例值
描述
AppId
String
661e****543cf
你的音视频应用的唯一标志,参看获取 AppId
BusinessId
String
B****23
业务标识
RoomId
String
Room1
向指定 RTC 房间推送网页音视频内容,房间 ID 是房间的唯一标志
TaskId
String
Task1

任务 ID。你必须对每个云录屏任务设定 TaskId,且在后续结束任务时也须使用该 TaskId。

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

关于 TaskId 及以上 Id 字段的命名规则符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128}

若任务运行中,使用相同的 TaskId 重复调用开始接口不会导致请求失败,BaseResponse.Result 会提示 The task has been started. Please do not call the startup task interface repeatedly
UserId
String
User1
推送网页音视频内容的用户对应的 UserId。不能与房间中其他用户的 ID 重复,否则先进房的用户会被移出房间。 建议添加有规律的前缀,避免重复。例如, webcast_
SourceURL
String
https://xxx.xxx.xxx
需要转推的网页地址,可以携带自定义的 queryParams 来鉴权等,总体长度不超过 1024。
VideoSolutions
Object[]
-

输出流的视频参数。网页渲染分辨率为输入最大视频流的分辨率。该值为空时按默认值填充一路。

  • 当设置一路流时,不会输出多路流,输出流参数与设置值相同。
  • 当设置两路流时, RTC 会启动推送多路流功能,设置的两路分辨率相当于分辨率等级划分中的大流和中流的上限。
Width
Integer
1280
视频宽度,单位为像素,范围为 [50,1920],默认值为 1280。必须是偶数,值为奇数时自动调整为偶数。
Height
Integer
720
视频高度,单位为像素,范围为 [50,1080],默认值为 720。必须是偶数,值为奇数时自动调整为偶数。
FrameRate
Integer
15
发送帧率,单位为 fps,范围为[1,60],默认值为 15。帧率和码率设置建议参照视频发布参数对照表以获取最佳体验。
Bitrate
Integer
0
最大发送码率,取值范围为 [0,10000],单位为 Kbps,默认值 0,为 0 时表示自适应码率。
MaxRunningTime
Integer
3600
最大运行时间,超过此时间后,任务自动终止。取值范围为 [10,86400],单位为秒,默认值为 86400。不填时自动调整为默认值。
MonitorConfig
Object
-
页面可用性监控配置
FreezeCheckInterval
Integer
5

对页面内容是否无变化的检测间隔。取值范围为 [2,30],单位为秒。默认值为 0,表示不启用。

  • 当连续两次出现检测命中时,将对页面进行刷新,并回调Status=4,Reason="PageFreeze"
  • 再次出现连续两次检测命中时,将进行任务重调度,并回调Status=5,Reason="PageFreeze"
注意:页面无变化可能是您业务的正常场景,请谨慎评估页面实际内容情况后再开启此功能,以免任务提前退出。
BlankCheckInterval
Integer
5

对页面是否白屏的检测间隔。取值范围为 [2,30],单位为秒。默认值为0,表示不启用。

  • 当连续两次出现检测命中时,将对页面进行刷新,并回调Status=4,Reason="PageBlank"
  • 再次出现连续两次检测命中时将进行任务重调度,并回调Status=5,Reason="PageBlank"
注意:页面全白可能是您业务的正常场景,请谨慎评估页面实际内容情况后再开启此功能,以免任务提前退出。
CrashCheckInterval
Integer
5

对页面 JS 线程是否崩溃/卡死的检测间隔。 取值范围为 [0,30],单位为秒。默认值为 0,表示不启用。

当出现检测命中时将进行任务重调度,并回调 Status=5,Reason="PageCrash"
EventNotifyConfig
Object
-
页面事件通知配置。若需要避免未载入完成时的不完整页面被采集,可以启用此配置。
EnableEventNotify
Boolean
true

是否启用页面主动事件通知,。

  • false:页面在打开后就会开始采集,在收到 StopWebCast openAPI 请求后结束采集。
  • true:在页面中注入两个 JS 函数:onWebcastStart()onWebcastEnd()
    默认值为false

当页面判断资源加载完成之后调用 onWebcastStart(),控制程序才会开始进行页面内容的采集。当页面判断本次任务内容已完成时调用onWebcastEnd() 通知控制程序结束本次任务。StopWebCast openAPI 效果不变,业务可提前结束任务。其他页面内容、JS 线程的检测(若启用),将在收到 onWebcastStart()事件后才开始。

当启用页面主动事件通知后,你可以参考以下示例代码来通知采集开始。

<script>
    if (ready() && typeof onWebcastStart === 'function')
        onWebcastStart();
</script>
StartTimeout
Integer
2

启用页面主动事件通知后,等待开始事件的超时时间。取值范围为 [0,60],单位为秒。默认值为 0,表示不启用。仅当 EnableEventNotifytrue 时,此参数有效。

  • 当在超时时间内收到开始事件,采集功能正常运行,用户将收到 Status=1的回调。
  • 当超时时间内未收到开始事件,将进行刷新,等待时间被重置,再次发生超时后将进行任务重调度。刷新时将回调 Status=4,Reason=" StartEventTimeout"。重调度时将回调 Status=5,Reason="StartEventTimeout"

返回参数

本接口无特有的返回参数。公共返回参数请见返回结构
其中返回值 Result 仅在请求成功时返回 ok,失败时为空。

请求示例

POST https://rtc.volcengineapi.com?Action=StartWebcast&Version=2023-11-01
{
    "AppId": "661e****543cf",
    "RoomId": "Room1",
    "TaskId": "Task1",
    "UserId": "user1",
    "SourceURL": "https://xxx.xxx.xxx",
    "VideoSolutions": [
        {
            "Width": 1280,
            "Height": 720,
            "FrameRate": 30
        }
    ],
    "MonitorConfig": {
        "FreezeCheckInterval": 3,
        "BlankCheckInterval": 5,
        "CrashCheckInterval": 5
    },
    "EventNotifyConfig": {
        "EnableEventNotify": false,
        "StartTimeout": 0
    },
    "MaxRunningTime": 60
}

返回示例

{
    "ResponseMetadata": {
        "RequestId": "20230****10420",
        "Action": "StartWebcast",
        "Version": "2023-11-01",
        "Service": "rtc",
        "Region": "cn-north-1"
    },
    "Result": "ok"
}

错误码

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