更新云端录制设置
更新时间不可用
更新进行中的云端录制任务设置。
https://api.sd-rtn.com/v1/apps/{appid}/cloud_recording/resourceid/{resourceid}/sid/{sid}/mode/{mode}/updateupdate 方法用于更新云端录制设置。
开始录制后,你可以调用 update 方法更新如下录制配置:
- 对单流录制和合流录制,更新订阅名单。
- 对页面录制,设置暂停/恢复页面录制,或更新页面录制转推到 CDN 的推流地址(URL)。
注意
update请求仅在会话内有效。如果录制启动错误,或录制已结束,调用update将返回404。- 如果需要连续调用
update方法更新录制设置,请在收到上一次update响应后再进行调用,否则可能导致请求结果与预期不一致。
appidstring你的项目使用的 App ID。
- 对于页面录制模式,只需输入开通了云端录制服务的 App ID。
- 对于单流和合流录制模式,必须使用和待录制的频道相同的 App ID,且该 App ID 需要开通云端录制服务。
resourceidstring通过 acquire 请求获取到的 Resource ID。
sidstring通过 start 获取的录制 ID。
Authorizationstring声网云端录制 RESTful API 仅支持 HTTPS 协议。发送请求时,你需要使用声网提供的客户 ID 和客户密钥生成 Base64 编码凭证,并填入请求头部的 Authorization 字段中。详见实现 HTTP 基本认证。
Content-Typestringapplication/json。
cnamestring录制服务所在频道的名称。需要和你在 acquire 请求中输入的 cname 相同。
uidstring字符串内容为录制服务在 RTC 频道内使用的 UID,用于标识该录制服务,需要和你在 acquire 请求中输入的 uid 相同。
更新订阅名单。
注意:仅需在单流录制和合流录制模式下设置。
音频订阅名单。
注意:该字段仅适用于 streamTypes 设为音频,或音频和视频的情况。
subscribeAudioUidsarray<string>指定订阅哪几个 UID 的音频流。如需订阅全部 UID 的音频流,则无需设置该字段。数组长度不得超过 32,不推荐使用空数组。该字段和 unSubscribeAudioUids 只能设一个。详见设置订阅名单。
注意:
- 该字段仅适用于 streamTypes 设为音频,或音频和视频的情况。
- 如果你设置了音频的订阅名单,但没有设置视频的订阅名单,云端录制服务不会订阅任何视频流。反之亦然。
- 设为 ["#allstream#"] 可订阅频道内所有 UID 的音频流。
unSubscribeAudioUidsarray<string>指定不订阅哪几个 UID 的音频流。云端录制会订阅频道内除指定 UID 外所有 UID 的音频流。数组长度不得超过 32,不推荐使用空数组。该字段和 subscribeAudioUids 只能设一个。详见设置订阅名单。
视频订阅名单。
注意:该字段仅适用于 streamTypes 设为视频,或音频和视频的情况。
subscribeVideoUidsarray<string>指定订阅哪几个 UID 的视频流。如需订阅全部 UID 的视频流,则无需设置该字段。数组长度不得超过 32,不推荐使用空数组。该字段和 unSubscribeVideoUids 只能设一个。详见设置订阅名单。
注意:
- 该字段仅适用于 streamTypes 设为视频,或音频和视频的情况。
- 如果你设置了视频的订阅名单,但没有设置音频的订阅名单,云端录制服务不会订阅任何音频流。反之亦然。
- 设为 ["#allstream#"] 可订阅频道内所有 UID 的视频流。
unSubscribeVideoUidsarray<string>指定不订阅哪几个 UID 的视频流。云端录制会订阅频道内除指定 UID 外所有 UID 的视频流。数组长度不得超过 32,不推荐使用空数组。该字段和 subscribeVideoUids 只能设一个。详见设置订阅名单。
用于更新页面录制配置项。
注意:仅需在页面录制模式下设置。
onholdboolean设置是否暂停页面录制:
true:暂停页面录制,并暂停生成页面录制文件。false:继续页面录制,并继续生成页面录制文件。 如果想恢复已暂停的页面录制,你可以调用update方法并将onhold设为false。
用于更新转推页面录制到 CDN 的配置项。
注意:仅需在页面录制模式下,且转推页面录制到 CDN 时设置。
rtmpUrlstringCDN 推流 URL。
注意:
- URL 仅支持 RTMP 和 RTMPS 协议。
- 支持的最大转推 CDN 路数为 1。
更新第三方云存储的配置项。
regionnumber第三方云存储指定的地区信息。
注意:为确保录制文件上传的成功率和实时性,第三方云存储的 region 与你发起请求的应用服务器必须在同一个区域中。例如:你发起请求的 App 服务器在中国大陆地区,则第三方云存储需要设置为中国大陆区域内。详见第三方存储地区说明。
bucketstring第三方云存储的 Bucket。Bucket 名称需要符合对应第三方云存储服务的命名规则。
accessKeystring第三方云存储的 Access Key(访问密钥)。
secretKeystring第三方云存储的 Secret Key。
stsTokenstring第三方云存储的临时安全令牌。该令牌由云服务商的安全令牌服务 (Security Token Service, STS) 临时颁发,用于授予第三方云存储资源的有限访问权限。
说明
- 目前支持的云服务商仅包括,
1:Amazon S3,2:阿里云,3:腾讯云。
stsExpirationnumber用于标记 stsToken 的过期时间戳,POSIX 时间,单位为秒。
注意
- 为避免时间戳溢出问题,建议使用 Uint64 存储。
- 建议在申请
stsToken时设置尽可能长的有效期,最短有效期需不少于 4 小时,并需要在过期前调用update方法更新stsToken的值。 - 如录制任务持续时间超过 1 小时,需每 60 分钟重新申请
stsToken,并调用update更新storageConfig中的相关参数。
fileNamePrefixarray<string>录制文件在第三方云存储中的存储位置,与录制文件名前缀有关。如果设为 ["directory1","directory2"],那么录制文件名前缀为 "directory1/directory2/",即录制文件名为 directory1/directory2/xxx.m3u8。前缀长度(包括斜杠)不得超过 128 个字符。字符串中不得出现斜杠、下划线、括号等符号字符。以下为支持的字符集范围:
- 26 个小写英文字母 a~z
- 26 个大写英文字母 A~Z
- 10 个数字 0-9
第三方云存储服务会按照该字段设置对已上传的录制文件进行加密和打标签。
ssestring加密模式。设置该字段后,第三方云存储服务会按照该加密模式将已上传的录制文件进行加密。该字段仅适用于 Amazon S3,详见 Amazon S3 官方文档。
kms:KMS 加密。aes256:AES256 加密。
tagstring标签内容。设置该字段后,第三方云存储服务会按照该标签内容将已上传的录制文件进行打标签操作。该字段仅适用于阿里云和 Amazon S3,详见阿里云官方文档和 Amazon S3 官方文档。
endpointstringS3 协议云存储的域名。当 vendor 设为 11 时,该字段为必填。
JSON 示例
{
"cname": "<your_channel_name>",
"uid": "unique_user_id",
"clientRequest": {
"streamSubscribe": {
"audioUidList": {
"subscribeAudioUids": [
"#allstream#"
]
},
"videoUidList": {
"unSubscribeVideoUids": [
"<uid1_to_be_unsubscribed>",
"<uid2_to_be_unsubscribed>"
]
}
},
"storageConfig": {
"vendor": 2,
"region": 3,
"bucket": "<your_storage_bucket>",
"accessKey": "<your_storage_access_key>",
"secretKey": "<your_storage_secret_key>",
"fileNamePrefix": [
"quickstart"
]
}
}
}响应
如果返回的 HTTP 状态码为 200,表示请求成功。
响应 Body
cnamestring录制的频道名。
uidstring字符串内容为云端录制服务在 RTC 频道内使用的 UID,用于标识频道内的录制服务。
resourceIdstring云端录制使用的 Resource ID。
sidstring录制 ID。标识每次录制周期。
请求示例
curl --request POST \
--url "https://api.sd-rtn.com/v1/apps/:appid/cloud_recording/resourceid/:resourceid/sid/:sid/mode/:mode/update" \
--header 'Authorization: Basic <credentials>' \
-H 'Content-Type: application/json' \
-d '{
"cname": "<your_channel_name>",
"uid": "<unique_user_id>",
"clientRequest": {
"streamSubscribe": {
"audioUidList": {
"subscribeAudioUids": [
"#allstream#"
]
},
"videoUidList": {
"unSubscribeVideoUids": [
"<uid1_to_be_unsubscribed>",
"<uid2_to_be_unsubscribed>"
]
}
}
}
}'响应示例
{
"cname": "录制的频道名。",
"uid": "字符串内容为云端录制服务在 RTC 频道内使用的 UID,用于标识频道内的录制服务。",
"resourceId": "云端录制使用的 Resource ID。",
"sid": "录制 ID。标识每次录制周期。"
}