通过 acquire
方法获取云端录制资源后,调用 start
方法开始云端录制。
对于每个声网账号,每秒钟的请求数限制为 10 次。如需提高此限制,请联系技术支持。
该 API 需要在 URL 中传入以下参数。
参数 | 类型 | 描述 |
---|---|---|
appid |
String | 你的项目使用的 App ID。必须使用和待录制的频道相同的 App ID。 |
resourceid |
String | 通过 acquire 请求获取到的 resource ID。 |
mode |
String | 录制模式。 |
录制模式包含如下:
Content-Type
: application/json
Authorization
: 该字段的值需参考认证说明。该 API 需要在请求包体中传入以下参数:
参数 | 类型 | 描述 |
---|---|---|
cname |
String | 待录制的频道名。需要和你在 acquire 请求中输入的 cname 相同。 |
uid |
String | 字符串内容为云端录制服务在 RTC 频道内使用的 UID,用于标识该录制服务,需要和你在 acquire 请求中输入的 UID 相同。 |
clientRequest |
JSON Object | 特定的客户请求参数,对于该请求包含以下参数:token :String 类型,非页面录制模式下,用于鉴权的动态密钥。如果你的项目已启用 App 证书,则务必在该参数中传入你项目的动态密钥。详见使用 Token 鉴权。appsCollection :JSON Object,应用设置。recordingConfig :JSON Object,媒体流订阅、转码、输出音视频属性的设置。transcodeOptions :JSON Object,延时混音设置。recordingFileConfig :JSON Object,录制文件的设置。snapshotConfig :JSON Object,截图周期、截图文件的设置。storageConfig :JSON Object,第三方云存储的设置。extensionServiceConfig :JSON Object,扩展服务的设置,目前包括页面录制、页面录制转推到 CDN 的详细设置。 |
appsCollection
是一个用于设置云端录制应用的 JSON Object。appsCollection
包含以下字段:
combinationPolicy
:(选填)String 类型,各个云端录制应用的组合方式。default
:(默认)除延时转码和延时混音外,均选用此种方式。postpone_transcoding
:如需延时转码或延时混音,则选用此种方式。recordingConfig
是一个用于设置媒体流订阅的 JSON Object。云端录制会根据此设置订阅频道内的媒体流,并生成录制文件或截图。recordingConfig
包含以下字段:
channelType
:Number 类型,频道场景。频道场景必须与声网 RTC SDK 的设置一致,否则可能导致问题。
0
:(默认)通信场景1
:直播场景streamTypes
:(选填)Number 类型,订阅的媒体流类型。使用智能语音审核时,你需要将其设置为 0
,即仅订阅音频。
0
:仅订阅音频1
:仅订阅视频2
:(默认)订阅音频和视频streamMode
:(选填)String 类型,单流录制模式下(mode
为 individual
),媒体流的输出模式:
decryptionMode
:(选填)Number 类型,解密方案。如果频道设置了加密,该参数必须设置。解密方式必须与频道设置的加密方式一致。
0
:(默认)不加密。1
:AES_128_XTS 加密模式。128 位 AES 加密,XTS 模式。2
:AES_128_ECB 加密模式。128 位 AES 加密,ECB 模式。3
:AES_256_XTS 加密模式。256 位 AES 加密,XTS 模式。4
:SM4_128_ECB 加密模式。128 位 SM4 加密,ECB 模式。5
:AES_128_GCM 加密模式。128 位 AES 加密,GCM 模式。6
:AES_256_GCM 加密模式。256 位 AES 加密,GCM 模式。7
:AES_128_GCM2 加密模式。128 位 AES 加密,GCM 模式。 相比于 AES_128_GCM 加密模式,AES_128_GCM2 加密模式安全性更高且需要设置密钥和盐。8
:AES_256_GCM2 加密模式。256 位 AES 加密,GCM 模式。相比于 AES_256_GCM 加密模式,AES_256_GCM2 加密模式安全性更高且需要设置密钥和盐。secret
:(选填)String 类型。启用解密模式后,设置解密的密钥。如果 decryptionMode
不为 0,则需要设置该值。
salt
:(选填)Base64 编码、32 位字节。启用解密模式后,设置解密的盐。如果 decryptionMode
为 7 或 8,则需要设置该值。
audioProfile
:(选填)设置输出音频的采样率、码率、编码模式和声道数。目前仅适用于合流录制。
0
:(默认)48 kHz 采样率,音乐编码,单声道,编码码率约 48 Kbps1
:48 kHz 采样率,音乐编码,单声道,编码码率约 128 Kbps2
:48 kHz 采样率,音乐编码,双声道,编码码率约 192 KbpsvideoStreamType
:(选填)Number 类型,设置订阅的视频流类型。如果频道中有用户开启了双流模式,你可以选择订阅视频大流或者小流。
0
:(默认)视频大流,即高分辨率高码率的视频流1
:视频小流,即低分辨率低码率的视频流maxIdleTime
:(选填)Number 类型,最长空闲频道时间,单位为秒。默认值为 30。该值需大于等于 5,且小于等于 2,592,000,即 30 天。如果频道内无用户的状态持续超过该时间,录制程序会自动退出。退出后,再次调用 start
请求,会产生新的录制文件。
maxIdleTime
,录制程序会自动退出。transcodingConfig
:(选填)JSON Object,视频转码的详细设置。仅适用于合流模式,单流模式下不能设置该参数。如果不设置将使用默认值。如果设置该参数,必须填入 width
、height
、fps
和 bitrate
字段。请参考如何设置录制视频的分辨率设置该参数。
width
:Number 类型,视频的宽度,单位为像素,默认值 360。width
不能超过 1920,且 width
和 height
的乘积不能超过 1920 * 1080,超过最大值会报错。
height
:Number 类型,视频的高度,单位为像素,默认值 640。height
不能超过 1920,且 width
和 height
的乘积不能超过 1920 * 1080,超过最大值会报错。
fps
:Number 类型,视频的帧率,单位 fps,默认值 15。
bitrate
:Number 类型,视频的码率,单位 Kbps,默认值 500。
maxResolutionUid
:(选填)String 类型,如果视频合流布局设为垂直布局,用该参数指定显示大视窗画面的用户 ID。取值范围 1 到 (232-1),不可设置为 0。
mixedVideoLayout
:(选填)Number 类型,设置视频合流布局,0、1、2 为预设的合流布局,3 为自定义合流布局。该参数设为 3 时必须设置 layoutConfig
参数。
0
:(默认)悬浮布局。第一个加入频道的用户在屏幕上会显示为大视窗,铺满整个画布,其他用户的视频画面会显示为小视窗,从下到上水平排列,最多 4 行,每行 4 个画面,最多支持共 17 个画面。1
:自适应布局。根据用户的数量自动调整每个画面的大小,每个用户的画面大小一致,最多支持 17 个画面。2
:垂直布局。指定一个用户在屏幕左侧显示大视窗画面,其他用户的小视窗画面在右侧垂直排列,最多两列,一列 8 个画面,最多支持共 17 个画面。设置为垂直布局时,用 maxResolutionUid
参数指定显示大视窗画面的用户 ID。3
:自定义布局。设置 layoutConfig
参数自定义合流布局。backgroundColor
:(选填)String 类型。视频画布的背景颜色。支持 RGB 颜色表,字符串格式为 # 号后 6 个十六进制数。默认值 "#000000"
黑色。
backgroundImage
:(选填)String 类型。视频画布的背景图的 URL 地址。背景图的显示模式为裁剪模式。裁剪模式下,优先保证画面被填满。背景图尺寸等比缩放,直至整个画面被背景图填满。如果背景图长宽与显示窗口不同,则背景图会按照画面设置的比例进行周边裁剪后填满画面。
defaultUserBackgroundImage
:(选填)String 类型。默认的用户画面背景图的 URL 地址。配置该参数后,当任一⽤户停止发送视频流超过 3.5 秒,画⾯将切换为该背景图;如果针对某 UID 单独设置了背景图,则该设置会被覆盖。
layoutConfig
:(选填)JSON Array 类型。由每个用户对应的布局画面设置组成的数组,支持最多 17 个用户画面。当 mixedVideoLayout
设为 3 时,可以通过该参数自定义合流布局。一个用户画面设置包括以下参数:
uid
:(选填)String 类型。字符串内容为待显示在该区域的用户的 UID,32 位无符号整数。如果不指定 UID,会按照用户加入频道的顺序自动匹配 layoutConfig
中的画面设置。x_axis
:Float 类型。屏幕里该画面左上角的横坐标的相对值,范围是 [0.0,1.0],精确到小数点后六位。从左到右布局,0.0 在最左端,1.0 在最右端。y_axis
:Float 类型。屏幕里该画面左上角的纵坐标的相对值,范围是 [0.0,1.0],精确到小数点后六位。从上到下布局,0.0 在最上端,1.0 在最下端。width
:Float 类型。该画面宽度的相对值,取值范围是 [0.0,1.0],精确到小数点后六位。height
:Float 类型。该画面高度的相对值,取值范围是 [0.0,1.0],精确到小数点后六位。alpha
:(选填)Float 类型。图像的透明度。取值范围是 [0.0,1.0] ,精确到小数点后六位。默认值 1.0。0.0 表示图像为透明的,1.0 表示图像为完全不透明的。render_mode
:(选填)Number 类型。画面显示模式:0
:(默认)裁剪模式。优先保证画面被填满。视频尺寸等比缩放,直至整个画面被视频填满。如果视频长宽与显示窗口不同,则视频流会按照画面设置的比例进行周边裁剪后填满画面。1
:缩放模式。优先保证视频内容全部显示。视频尺寸等比缩放,直至视频窗口的一边与画面边框对齐。如果视频尺寸与画面尺寸不一致,在保持长宽比的前提下,将视频进行缩放后填满画面,缩放后的视频四周会有一圈黑边。backgroundConfig
:(选填)JSON Array 类型。数组内容为各 UID 单独的背景图设置。
uid
:String 类型。用户 UID。
image_url
:String 类型。该 UID 的背景图的 URL 地址。配置背景图后,当该⽤户停止发送视频流超过 3.5 秒,画⾯将切换为该背景图。
render_mode
:(选填)Number 类型。画面显示模式。
0
:(默认)裁剪模式。优先保证画面被填满。背景图尺寸等比缩放,直至整个画面被背景图填满。如果背景图长宽与显示窗口不同,则背景图会按照画面设置的比例进行周边裁剪后填满画面。1
:缩放模式。优先保证背景图内容全部显示。背景图尺寸等比缩放,直至背景图的一边与画面边框对齐。如果背景图尺寸与画面尺寸不一致,在保持长宽比的前提下,将背景图进行缩放后填满画面,缩放后的背景图四周会有一圈黑边。subscribeAudioUids
:(选填)JSON Array 类型,由 UID 组成的数组,指定订阅哪几个 UID 的音频流。如需订阅全部 UID 的音频流,则无需设置该参数。数组长度不得超过 32,不推荐使用空数组。详见设置订阅名单。
unSubscribeAudioUids
: (选填)JSON Array 类型,由 UID 组成的数组,指定不订阅哪几个 UID 的音频流。云端录制会订阅频道内除指定 UID 外所有 UID 的音频流。数组长度不得超过 32,不推荐使用空数组。设置订阅名单。
subscribeVideoUids
:(选填)JSON Array 类型,由 UID 组成的数组,指定订阅哪几个 UID 的视频流。如需订阅全部 UID 的视频流,则无需设置该参数。数组长度不得超过 32,不推荐使用空数组。设置订阅名单。
unSubscribeVideoUids
: (选填)JSON Array 类型,由 UID 组成的数组,指定不订阅哪几个 UID 的视频流。云端录制会订阅频道内除指定 UID 外所有 UID 的视频流。数组长度不得超过 32,不推荐使用空数组。设置订阅名单。
subscribeUidGroup
: (仅在单流录制模式下必填)Number 类型,预估的订阅人数峰值。举例来说,如果 subscribeVideoUids
为 ["100","101","102"]
,subscribeAudioUids
为 ["101","102","103"]
,则订阅人数为 4 人。
0
:1 到 2 个 UID。1
:3 到 7 个 UID。2
:8 到 12 个 UID。3
:13 到 17 个 UID。4
:17 到 32 个 UID。5
:32 到 49 个 UID。streamMode |
描述 | 生成索引文件 | 生成切片文件 | 视频编码 | 音频编码 | 支持的功能 |
---|---|---|---|---|---|---|
default |
默认模式 | 每个 user ID 生成一个 M3U8 音频索引文件和一个 M3U8 视频索引文件。 | 每个 user ID 生成多个 TS 音频切片文件和多个 TS 视频切片文件。 如果在 Web 端使用 VP8 编码,则生成多个 TS 音频切片文件和多个 WebM 格式的视频切片文件。 | 不转码 | 转码 | 单流录制、视频截图、延时转码。 |
standard |
标准模式 | 每个 user ID 生成一个 M3U8 音频索引文件、一个M3U8 视频索引文件和一个合并的 M3U8 音视频索引文件。如果在 Web 端使用 VP8 编码,则生成一个合并的 MPD 音视频索引文件。 | 每个 user ID 生成多个 TS 音频切片文件和多个 TS 视频切片文件。 如果在 Web 端使用 VP8 编码,则生成多个 WebM 格式的音频文件和多个 WebM 格式的视频文件。 | 不转码 | 转码 | 单流录制、视频截图。 |
original |
原始模式。仅订阅音频时(streamTypes 为 0 )时该参数生效。 |
每个 user ID 生成一个 M3U8 音频索引文件。 | 每个 user ID 生成多个 TS 音频切片文件。 | 无 | 不转码 | 单流音频不转码录制、延时混音。 |
transcodeOptions
是一个用于设置录制文件转码属性的 JSON Object。云端录制会根据此设置录制文件的转码模式和输出音频属性。适用于延时混音。包含以下字段:
container
:(选填)JSON Object,转码属性:format
:String 类型,输出音频格式:mp3
:MP3 格式。m4a
:M4A 格式。aac
:AAC 格式。transConfig
:(必填)JSON Object,转码设置:transMode
:String 类型,转码模式,目前仅支持设置为 audioMix
,代表混音。audio
:(选填)JSON Object,输出录制文件的音频属性:sampleRate
:String 类型,数据采样率(Hz):48000
(默认)32000
16000
bitrate
:String 类型,码率,单位 Kbps,默认且仅支持设置为 48000
。channels
:String 类型,声道数,可设为 1
和 2
(默认)。recordingFileConfig
是一个 JSON Object,用于设置录制文件。包含以下字段:
avFileType
:(选填)JSON Array 类型,由多个字符串组成的数组,指定录制生成的视频文件类型。目前支持以下值:
"hls"
:默认值。M3U8 和 TS 文件。
"mp4"
:MP4 文件。仅适用于合流录制模式(mix
)和页面录制模式(web
):
对于合流录制,录制服务会在当前 MP4 文件时长超过约 2 小时或文件大小超过约 2 GB 左右时,创建一个新的 MP4 文件。- 对于页面录制,录制服务会在当前 MP4 文件时长超过 maxVideoDuration
时,创建一个新的 MP4 文件。
"mp4"
时还必须设置 "hls"
,你会在录制结束后同时获得 MP4 和 HLS 文件。仅设置 "mp4"
时,你会收到错误码 2
)。云端录制支持在一个单流录制进程中仅截图,或同时录制和截图两种方式,详见视频截图。
字段说明
snapshotConfig
包含以下字段:
captureInterval
:(选填)Integer 类型,截图周期(秒)。云端录制会按此周期定期截图。取值范围为 [1,3600],默认值为 10
。fileType
:JSON Array 类型,由多个字符串组成的数组,指定截图的文件格式。目前只支持 ["jpg"]
,即生成 JPG 格式的截图文件。注意事项
snapshotConfig
是一个用于设置截图的 JSON Object。使用云端录制进行截图,需要注意以下参数的设置。设置错误会收到报错,或无法生成截图文件。
mode
参数必须设为 individual
。recordingFileConfig
参数;如果在一个录制进程中仅截图,则不可设置该参数。streamTypes
必须设置为 1 或 2。subscribeAudioUid
,则必须同时设置 subscribeVideoUids
。storageConfig
是一个用于设置第三方云存储的 JSON Object,包含以下字段:
vendor
:Number 类型,第三方云存储平台。
region
:Number 类型,第三方云存储指定的地区信息。录制服务仅支持以下列表中的地区。
region
与你发起请求的应用服务器必须在同一个区域中。例如:你发起请求的应用服务器在中国大陆地区,则第三方云存储需要设置为中国大陆区域内。vendor
= 1,即第三方云存储为 Amazon S3 时:0
:US_EAST_11
:US_EAST_22
:US_WEST_13
:US_WEST_24
:EU_WEST_15
:EU_WEST_26
:EU_WEST_37
:EU_CENTRAL_18
:AP_SOUTHEAST_19
:AP_SOUTHEAST_210
:AP_NORTHEAST_111
:AP_NORTHEAST_212
:SA_EAST_113
:CA_CENTRAL_114
:AP_SOUTH_115
:CN_NORTH_116
:CN_NORTHWEST_118
:AF_SOUTH_119
:AP_EAST_120
:AP_NORTHEAST_321
:EU_NORTH_122
:ME_SOUTH_124
:AP_SOUTHEAST_325
:EU_SOUTH_1vendor
= 2,即第三方云存储为阿里云时:0
:CN_Hangzhou1
:CN_Shanghai2
:CN_Qingdao3
:CN_Beijing4
:CN_Zhangjiakou5
:CN_Huhehaote6
:CN_Shenzhen7
:CN_Hongkong8
:US_West_19
:US_East_110
:AP_Southeast_111
:AP_Southeast_212
:AP_Southeast_313
:AP_Southeast_514
:AP_Northeast_115
:AP_South_116
:EU_Central_117
:EU_West_118
:EU_East_119
:AP_Southeast_620
:CN_Heyuan21
:CN_Guangzhou22
:CN_Chengdu23
:CN_Nanjing24
:CN_Fuzhou25
:CN_Wulanchabu26
:CN_Northeast_227
:CN_Southeast_7vendor
= 3,即第三方云存储为腾讯云时:0
:AP_Beijing_11
:AP_Beijing2
:AP_Shanghai3
:AP_Guangzhou4
:AP_Chengdu5
:AP_Chongqing6
:AP_Shenzhen_FSI7
:AP_Shanghai_FSI8
:AP_Beijing_FSI9
:AP_Hongkong10
:AP_Singapore11
:AP_Mumbai12
:AP_Seoul13
:AP_Bangkok14
:AP_Tokyo15
:NA_Siliconvalley16
:NA_Ashburn17
:NA_Toronto18
:EU_Frankfurt19
:EU_Moscowvendor
= 5,即第三方云存储为 Microsoft Azure 时:region
参数,即使设置也不生效。
vendor
= 6,即第三方云存储为谷歌云时:region
参数,即使设置也不生效。
vendor
= 7,即第三方云存储为华为云时:0
:CN_North_11
:CN_North_42
:CN_East_23
:CN_East_34
:CN_South_15
:CN_Southwest_26
:AP_Southeast_17
:AP_Southeast_28
:AP_Southeast_39
:AF_South_110
:SA_Argentina_111
:SA_Peru_112
:NA_Mexico_113
:SA_Brazil_114
:LA_South_215
:SA_Chile_1vendor
= 8,即第三方云存储为百度智能云时:0
:Beijing1
:Baoding2
:Suzhou3
:Guangzhou4
:Hongkong5
:Singapore6
:Wuhan7
:Shanghaibucket
:String 类型,第三方云存储的 bucket,bucket 名称需要符合对应第三方云存储服务的命名规则。
accessKey
:String 类型,第三方云存储的 access key。在一般情况下,建议提供只写权限的访问密钥。如需延时转码,则访问密钥必须同时具备读写权限。
secretKey
:String 类型,第三方云存储的 secret key。
fileNamePrefix
:(选填)JSON Array 类型,由多个字符串组成的数组,指定录制文件在第三方云存储中的存储位置。举个例子,fileNamePrefix
= ["directory1","directory2"]
,将在录制文件名前加上前缀 "directory1/directory2/
",即 directory1/directory2/xxx.m3u8
。前缀长度(包括斜杠)不得超过 128 个字符。字符串中不得出现斜杠、下划线、括号等符号字符。以下为支持的字符集范围:
extensionParams
:(选填)JSON Object 类型,第三方云存储服务会按照该参数设置对已上传的录制文件进行加密和打标签。包含以下字段:
sse
:加密模式。设置该字段后,第三方云存储服务会按照该加密模式将已上传的录制文件进行加密。该字段仅适用于 Amazon S3,详见 Amazon S3 官方文档。可设为:kms
:KMS 加密。aes256
:AES256 加密。tag
:标签内容。设置该字段后,第三方云存储服务会按照该标签内容将已上传的录制文件进行打标签操作。该字段仅适用于阿里云和 Amazon S3,详见阿里云官方文档和 Amazon S3 官方文档。extensionServiceConfig
是一个 JSON Object,用于设置扩展服务。扩展服务是基于声网 RTC SDK 的一系列应用服务,能够对声网 RTC SDK 中产生的音视频流进行进一步处理。
extensionServiceConfig
包含以下字段:
errorHandlePolicy
:(选填)String 类型。错误处理策略。目前仅可设置为默认值 "error_abort"
,表示当某一扩展服务发生错误后,订阅及其他非扩展服务均停止。apiVersion
:(选填)String 类型,云端录制 RESTful API 的版本号,默认为 "v1"
。extensionServices
:JSON Array 类型,由每个扩展服务的设置组成的数组。目前仅支持同时设置页面录制、页面录制转推到 CDN。serviceName
:String 类型,扩展服务的名称。要进行页面录制,你需要将其设置为 "web_recorder_service"
。
errorHandlePolicy
:(选填)String 类型。错误处理策略。目前仅可设置为默认值 "error_abort"
,表示如果当前扩展服务发生错误,其他扩展服务均停止。
serviceParam
:JSON Object。扩展服务的具体参数设置。当进行页面录制时,你需要设置以下参数:
url
: String 类型。设置待录制页面的地址。
videoBitrate
:(选填)Number 类型,输出视频的码率,单位为 kbps,范围为 [50, 8000]。针对不同的输出视频分辨率,videoBitrate
的默认值不同:
videoFps
:(选填)Number 类型,输出视频的帧率,单位为 fps,范围为 [5, 60],默认值为 15。
audioProfile
:Number 类型,设置输出音频的采样率、码率、编码模式和声道数。
0
:48 kHz 采样率,音乐编码,单声道,编码码率约 48 Kbps1
:48 kHz 采样率,音乐编码,单声道,编码码率约 128 Kbps2
:48 kHz 采样率,音乐编码,双声道,编码码率约 192 Kbpsmobile
:(选填)Bool 类型,是否开启移动端网页模式:
true
:开启。设置为 true
后,录制服务使用移动端网页渲染模式录制当前页面。false
:(默认)不开启。videoWidth
:Number 类型,设置输出视频的宽度,单位为 pixel,范围为 [240, 1920]。videoWidth
和 videoHeight
的乘积需小于等于 1920 × 1080。
videoHeight
:Number 类型,设置输出视频的高度,单位为 pixel,范围为 [240, 1920]。videoWidth
和 videoHeight
的乘积需小于等于 1920 × 1080。
声网建议你使用推荐值设置移动端网页输出视频的宽高,详见如何设置页面录制移动端网页模式的输出视频分辨率。
maxRecordingHour
:Number 类型,设置录制的最大时长,单位为小时,范围为 [1,720]。当录制时长超过 maxRecordingHour
,录制会自动停止。建议 maxRecordingHour
不超过你在 acquire
方法中设置的 resourceExpiredHour
的值。
页面录制停止前会持续计费,请根据实际业务情况设置合理的 maxRecordingHour
,或主动停止页面录制。
maxVideoDuration
:(选填)Number 类型,设置页面录制生成的 MP4 切片文件的最大时长,单位为分钟,取值范围为 [30,240],默认值为 120 分钟。页面录制过程中,录制服务会在当前 MP4 文件时长超过约 maxVideoDuration
左右时创建一个新的 MP4 切片文件。
onhold
:(选填)Bool 类型。设置是否在启动页面录制任务时暂停页面录制。
true
:在启动页面录制任务时暂停页面录制。开启页面录制任务后立即暂停录制,录制服务会打开并渲染待录制页面,但不生成切片文件。
false
:(默认) 启动页面录制任务并进行页面录制。
声网推荐你按照如下流程使用 onhold
参数:调用 start
方法时将 onhold
参数设置为 true
,开启并暂停页面录制,自行判断页面录制开始的合适时机,调用 update
并将 onhold
参数设置为 false
,继续进行页面录制。如果需要连续调用 update
方法暂停或继续页面录制,请在收到上一次 update
响应后再进行调用,否则可能导致请求结果与预期不一致。
readyTimeout
:(选填)Number 类型,设置页面加载超时时间,单位为秒,取值范围 [0,60]。详见页面加载超时检测。
2
。设置页面录制转推到 CDN 的字段时,你还需要同时设置页面录制的字段。页面录制转推到 CDN 的字段设置如下:
serviceName
:String 类型,扩展服务的名称。如果要进行页面录制并推流到 CDN,你需要将其设置为 "rtmp_publish_service"
。errorHandlePolicy
:(选填)String 类型。错误处理策略。目前仅可设置为默认值 "error_ignore"
,表示如果当前扩展服务发生错误,不影响其他扩展服务。serviceParam
:JSON Object。扩展服务的具体参数设置。当进行页面录制推流到 CDN时,你需要设置以下参数:outputs
:JSON Array 类型。包含以下参数:rtmpUrl
:String 类型。CDN 推流地址。请求 URL:
https://api.sd-rtn.com/v1/apps/{appid}/cloud_recording/resourceid/{resourceid}/mode/<mode>/start
Content-type
为 application/json;charset=utf-8
Authorization
为 Basic authorization,生成方法请参考 RESTful API 认证。
请求包体内容:
{
"cname":"httpClient463224",
"uid":"527841",
"clientRequest":{
"recordingConfig":{
"channelType":1,
"streamTypes":2,
"streamMode":"default",
"videoStreamType":0,
"maxIdleTime":30,
"subscribeAudioUids":[
"123",
"456"
],
"subscribeVideoUids":[
"123",
"456"
],
"subscribeUidGroup":0
},
"recordingFileConfig":{
"avFileType":[
"hls"
]
},
"storageConfig":{
"vendor":2,
"region":3,
"bucket":"xxxxx",
"accessKey":"xxxxx",
"secretKey":"xxxxx",
"fileNamePrefix":[
"directory1",
"directory2"
]
}
}
}
{
"cname":"httpClient463224",
"uid":"527841",
"clientRequest":{
"appsCollection":{
"combinationPolicy":"postpone_transcoding"
},
"recordingConfig":{
"channelType":1,
"streamTypes":2,
"streamMode":"default",
"videoStreamType":0,
"maxIdleTime":30,
"subscribeAudioUids":[
"123",
"456"
],
"subscribeVideoUids":[
"123",
"456"
],
"subscribeUidGroup":0
},
"recordingFileConfig":{
"avFileType":[
"hls"
]
},
"storageConfig":{
"vendor":2,
"region":3,
"bucket":"xxxxx",
"accessKey":"xxxxx",
"secretKey":"xxxxx",
"fileNamePrefix":[
"directory1",
"directory2"
]
}
}
}
{
"cname":"httpClient463224",
"uid":"527841",
"clientRequest":{
"recordingConfig":{
"channelType":1,
"streamTypes":0,
"streamMode":"original",
"maxIdleTime":30,
"subscribeAudioUids":[
"123",
"456"
],
"subscribeUidGroup":0
},
"recordingFileConfig":{
"avFileType":[
"hls"
]
},
"storageConfig":{
"vendor":2,
"region":3,
"bucket":"xxxxx",
"accessKey":"xxxxx",
"secretKey":"xxxxx",
"fileNamePrefix":[
"directory1",
"directory2"
]
}
}
}
{
"cname":"httpClient463224",
"uid":"527841",
"clientRequest":{
"appsCollection":{
"combinationPolicy":"postpone_transcoding"
},
"recordingConfig":{
"channelType":1,
"streamTypes":0,
"streamMode":"original",
"maxIdleTime":30,
"subscribeAudioUids":[
"123",
"456"
],
"subscribeUidGroup":0
},
"recordingFileConfig":{
"avFileType":[
"hls"
]
},
"storageConfig":{
"vendor":2,
"region":3,
"bucket":"xxxxx",
"accessKey":"xxxxx",
"secretKey":"xxxxx",
"fileNamePrefix":[
"directory1",
"directory2"
]
},
"transcodeOptions":{
"container":{
"format":"mp3"
},
"transConfig":{
"transMode":"audioMix"
},
"audio":{
"sampleRate":"48000",
"bitrate":"48000",
"channels":"2"
}
}
}
}
{
"cname":"httpClient463224",
"uid":"527841",
"clientRequest":{
"recordingConfig":{
"channelType":1,
"streamTypes":2,
"streamMode":"default",
"videoStreamType":0,
"maxIdleTime":30,
"subscribeAudioUids":[
"123",
"456"
],
"subscribeVideoUids":[
"123",
"456"
],
"subscribeUidGroup":0
},
"snapshotConfig":{
"captureInterval":5,
"fileType":[
"jpg"
]
},
"storageConfig":{
"vendor":2,
"region":3,
"bucket":"xxxxx",
"accessKey":"xxxxx",
"secretKey":"xxxxx",
"fileNamePrefix":[
"directory1",
"directory2"
]
}
}
}
{
"cname":"httpClient463224",
"uid":"527841",
"clientRequest":{
"recordingConfig":{
"channelType":1,
"streamTypes":2,
"streamMode":"default",
"videoStreamType":0,
"maxIdleTime":30,
"subscribeAudioUids":[
"123",
"456"
],
"subscribeVideoUids":[
"123",
"456"
],
"subscribeUidGroup":0
},
"recordingFileConfig":{
"avFileType":[
"hls"
]
},
"snapshotConfig":{
"captureInterval":5,
"fileType":[
"jpg"
]
},
"storageConfig":{
"vendor":2,
"region":3,
"bucket":"xxxxx",
"accessKey":"xxxxx",
"secretKey":"xxxxx",
"fileNamePrefix":[
"directory1",
"directory2"
]
}
}
}
{
"cname":"httpClient463224",
"uid":"527841",
"clientRequest":{
"recordingConfig":{
"channelType":1,
"streamTypes":2,
"audioProfile":2,
"videoStreamType":0,
"maxIdleTime":30,
"transcodingConfig":{
"width":640,
"height":360,
"fps":15,
"bitrate":500,
"mixedVideoLayout":0,
"backgroundColor":"#000000"
},
"subscribeVideoUids":[
"123",
"456"
],
"subscribeAudioUids":[
"123",
"456"
]
},
"recordingFileConfig":{
"avFileType":[
"hls",
"mp4"
]
},
"storageConfig":{
"vendor":2,
"region":3,
"bucket":"xxxxx",
"accessKey":"xxxxx",
"secretKey":"xxxxx",
"fileNamePrefix":[
"directory1",
"directory2"
]
}
}
}
{
"cname":"httpClient463224",
"uid":"527841",
"clientRequest":{
"extensionServiceConfig":{
"extensionServices":[
{
"serviceName":"web_recorder_service",
"serviceParam":{
"audioProfile":2,
"maxRecordingHour":1,
"url":"https://www.baidu.com",
"videoHeight":720,
"videoWidth":1280
}
}
]
},
"recordingFileConfig":{
"avFileType":[
"hls",
"mp4"
]
},
"storageConfig": {
"vendor": 2,
"region": 3,
"bucket": "xxxxx",
"accessKey": "xxxxx",
"secretKey": "xxxxx",
"fileNamePrefix": [
"directory1",
"directory2"
]
}
}
}
{
"cname":"httpClient463224",
"uid":"527841",
"clientRequest":{
"extensionServiceConfig":{
"extensionServices":[
{
"serviceName":"web_recorder_service",
"serviceParam":{
"audioProfile":2,
"maxRecordingHour":1,
"url":"https://www.baidu.com",
"videoHeight":720,
"videoWidth":1280
}
},
{
"serviceName":"rtmp_publish_service",
"serviceParam":{
"outputs":[
{
"rtmpUrl":"rtmp://1.1.1.1:1935/live/test"
}
]
}
}
]
},
"recordingFileConfig":{
"avFileType":[
"hls",
"mp4"
]
},
"storageConfig": {
"vendor": 2,
"region": 3,
"bucket": "xxxxx",
"accessKey": "xxxxx",
"secretKey": "xxxxx",
"fileNamePrefix": [
"directory1",
"directory2"
]
}
}
}
如果返回的 HTTP 状态码为 200
,表示请求成功,响应包体中包含以下字段:
cname
: String 类型,录制的频道名。uid
: String 类型,字符串内容为云端录制服务在 RTC 频道内使用的 UID,用于标识该录制服务。resourceId
: String 类型,云端录制使用的 resource ID。sid
: String 类型,录制 ID。成功开始云端录制后,你会得到一个 sid (录制 ID)。该 ID 是一次录制周期的唯一标识。如果 HTTP 状态码不为 200
,请参考响应状态码排查问题。
{
"cname":"httpClient463224",
"uid":"527841",
"resourceId":"JyvK8nXHuV1BE64GDkAaBGEscvtHW7v8BrQoRPCHxmeVxwY22-x-kv4GdPcjZeMzoCBUCOr9q-k6wBWMC7SaAkZ_4nO3JLqYwM1bL1n6wKnnD9EC9waxJboci9KUz2WZ4YJrmcJmA7xWkzs_L3AnNwdtcI1kr_u1cWFmi9BWAWAlNd7S7gfoGuH0tGi6CNaOomvr7-ILjPXdCYwgty1hwT6tbAuaW1eqR0kOYTO0Z1SobpBxu1czSFh1GbzGvTZG",
"sid":"38f8e3cfdc474cd56fc1ceba380d7e1a"
}