开始云端录制

更新时间不可用

开始一个云端录制任务。

POST
https://api.sd-rtn.com/v1/apps/{appid}/cloud_recording/resourceid/{resourceid}/mode/{mode}/start

start 方法用于开始云端录制。

通过 acquire 方法获取云端录制资源后,调用 start 方法开始云端录制。

注意

发起 start 请求后,你还需要依据保障录制成功启动检查录制服务是否已经成功启动。

路径参数

appidstring
必填

你的项目使用的 App ID。

  • 对于页面录制模式,只需输入开通了云端录制服务的 App ID。
  • 对于单流和合流录制模式,必须使用和待录制的频道相同的 App ID,且该 App ID 需要开通云端录制服务。
resourceidstring
必填

通过 acquire 请求获取到的 Resource ID。

modestring
必填

录制模式:

请求 Header

Authorizationstring
必填

声网云端录制 RESTful API 仅支持 HTTPS 协议。发送请求时,你需要使用声网提供的客户 ID 和客户密钥生成 Base64 编码凭证,并填入请求头部的 Authorization 字段中。详见实现 HTTP 基本认证。

Content-Typestring

application/json。

请求 Body

字段
cnamestring
必填

录制服务所在频道的名称。需要和你在 acquire 请求中输入的 cname 相同。

uidstring
必填

字符串内容为录制服务在 RTC 频道内使用的 UID,用于标识该录制服务,需要和你在 acquire 请求中输入的 uid 相同。

设置该字段后,可以提升可用性并优化负载均衡。

注意

如果填写该字段,则必须确保 startParameter object 和后续 start 请求中填写的 clientRequest object 完全一致,且取值合法,否则 start 请求会收到报错。

tokenstring

用于鉴权的动态密钥(Token)。如果你的项目已启用 App 证书,则务必在该字段中传入你项目的动态密钥。详见使用 Token 鉴权。

注意:

  • 仅需在单流录制和合流录制模式下设置。
  • 云端录制服务暂不支持更新 Token。为保证录制正常,请确保 Token 有效时长大于你预计的录制时长,以避免 Token 过期导致录制任务退出频道而结束录制。

第三方云存储的配置项。

录制的音视频流配置项。

注意:仅需在单流录制和合流录制模式下设置。

录制文件配置项。

注意:仅截图时不可设置该字段,其他情况都需要设置该字段。其他情况包含如下:

  • 单流录制模式下,不转码录制,转码录制,或同时录制和截图。
  • 合流录制。
  • 页面录制模式下,仅页面录制,或同时页面录制和转推到 CDN。

云端截图配置项。

注意:仅需在单流录制模式下,且使用截图功能时设置。

截图使用须知:

  • 截图功能仅适用于单流录制模式(raw)。
  • 你可以在一个单流录制进程中仅截图,或同时录制和截图,详见云端截图。同时录制和截图的情况需要设置 recordingFileConfig 字段。
  • 如果录制服务或录制上传服务异常,则截图失败。截图异常时,录制不受影响。
  • 使用截图时,streamTypes 必须设置为 1 或 2。如果设置了 subscribeAudioUid,则必须同时设置 subscribeVideoUids。

扩展服务配置项。

注意:仅需在页面录制模式下设置。

响应

如果返回的 HTTP 状态码为 200,表示请求成功。

如需检查录制服务是否已经成功启动,请参考监控录制状态操作。

响应 Body

cnamestring

录制的频道名。

uidstring

字符串内容为云端录制服务在 RTC 频道内使用的 UID,用于标识频道内的录制服务。

resourceIdstring

云端录制资源 Resource ID。使用这个 Resource ID 可以开始一段云端录制。这个 Resource ID 的有效期为 5 分钟,超时需要重新请求。

sidstring

录制 ID。成功开始云端录制后,你会得到一个 Sid (录制 ID)。该 ID 是一次录制周期的唯一标识。

请求示例

curl --request POST \
  --url "https://api.sd-rtn.com/v1/apps/:appid/cloud_recording/resourceid/:resourceid/mode/:mode/start" \
  --header 'Authorization: Basic <credentials>' \
  -H 'Content-Type: application/json' \
  -d '{
  "cname": "<your_channel_name>",
  "uid": "<unique_user_id>",
  "clientRequest": {
    "token": "<your_token>",
    "recordingConfig": {
      "channelType": 1,
      "streamTypes": 2,
      "videoStreamType": 0,
      "maxIdleTime": 30,
      "subscribeAudioUids": [
        "#allstream#"
      ],
      "subscribeVideoUids": [
        "#allstream#"
      ],
      "subscribeUidGroup": 5
    },
    "recordingFileConfig": {
      "avFileType": [
        "hls",
        "mp4"
      ]
    },
    "storageConfig": {
      "vendor": 2,
      "region": 3,
      "bucket": "<your_storage_bucket>",
      "accessKey": "<your_storage_access_key>",
      "secretKey": "<your_storage_secret_key>",
      "fileNamePrefix": [
        "quickstart"
      ],
      "extensionParams": {
        "tag": "RETENTION_DAYS=30"
      }
    }
  }
}'

响应示例

{
  "cname": "录制的频道名。",
  "uid": "字符串内容为云端录制服务在 RTC 频道内使用的 UID,用于标识频道内的录制服务。",
  "resourceId": "云端录制资源 Resource ID。使用这个 Resource ID 可以开始一段云端录制。这个 Resource ID 的有效期为 5 分钟,超时需要重新请求。",
  "sid": "录制 ID。成功开始云端录制后,你会得到一个 Sid (录制 ID)。该 ID 是一次录制周期的唯一标识。"
}