调用本接口开始云端录制。
当开发者成功调用 StartRecord 接口后,云端录制服务会根据设置的录制参数录制房间内的音视频流和白板。
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表请参考 调用方式 中的 “2.1 公共请求参数”。
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
RoomId |
String |
是 |
待录制的房间 ID。 |
RecordInputParams |
Object |
是 |
录制任务输入参数。 详见 RecordInputParams 成员列表。 |
RecordOutputParams |
Object |
否 |
录制任务输出参数。 详见 RecordOutputParams 成员列表。 |
StorageParams |
Object |
是 |
录制任务的存储配置。 详见 StorageParams 成员列表。 |
RecordInputParams 成员如下:
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
RecordMode |
Int |
是 |
录制模式。
|
StreamType |
Int |
否 |
录制媒体流类型,仅适用于音视频流,白板只会录制视频。
|
RecordStreamList |
Array of Object |
否 |
|
FillBlank |
Bool |
否 |
流中断时是否自动补白,默认为 false,即不补白。
中断补白的时机有两种可能:
|
FillFrame |
Object |
否 |
关闭摄像头后(音频持续在推)填充画面的方式,仅适用于混流录制。 详见 FillFrame 成员列表。 |
RecordMuteAudio |
Int |
否 |
指定是否录制静音状态下的音频帧数据,仅当单流录制、只录制音频且输出文件格式为 mp3 时生效。
|
RecordMuteAudioSplitThreshold |
Int |
否 |
录制文件自动分片的静音时长阈值,单位:秒。 录制过程中如果静音状态时长大于等于该阈值,则该段静音前后会生成为不同的录制文件。 仅当单流录制、只录制音频、输出文件格式为 mp3 且 RecordMuteAudio 为 2 时生效。 指定为 0 时遇静音即分片,不指定或者指定为负数时表示不分片。 |
HasWhiteboard |
Bool |
否 |
是否录制白板。
Whiteboard 参数必选。 |
Whiteboard |
Array of Object |
否 |
|
MaxIdleTime |
Int |
否 |
房间内没有任何流、白板之后多长时间自动停止云录制,单位:秒。默认值为 30 秒,该值需大于等于 5,且小于等于 86400(24 小时)。 注意:该参数仅当房间内无流、无白板时生效。 |
MaxRecordTime |
Int |
否 |
录制任务最大时长,录制持续时间达到该值自动结束。单位:秒。默认值 86400 秒(24 小时),该值需大于等于 300,且小于等于 86400(24 小时)。 |
MixConfig |
Object |
否 |
FillBlank
和 MaxIdleTime
作用对象不同:FillBlank
:作用于流本身,只要录制任务还在进行,FillBlank
设置为 true 后,若流处于中断状态,则会继续以补白的方式录制,此时该流仍然为中断状态,不影响房间内有无流的判断。MaxIdleTime
:作用于整个录制任务状态,当房间内无流时长超过 MaxIdleTime
时,则会中止整个录制任务。StreamType
为 1,表示仅录制音频,此时无法录制白板。RecordStreamList 成员如下:
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
StreamId |
String |
是 |
待录制的流 ID。 |
FillFrame 成员如下:
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
FrameFillMode |
Int |
否 |
画面填充模式。
|
FrameFillColor |
Int |
否 |
FrameFillMode 设置为 2 时有效,用于指定填充颜色,默认为黑色。前三个字节为 RGB 颜色值,第四个字节固定为 0,即 0xRRGGBB00。 |
FrameFillMode
相关:
Whiteboard 成员如下:
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
HorizontalRatio |
Int |
是 |
原始白板的宽高比(宽)。 |
VerticalRatio |
Int |
是 |
原始白板的宽高比(高)。 |
Width |
Int |
否 |
单流录制白板输出视频的分辨率宽,默认值为 1280。 |
Height |
Int |
否 |
单流录制白板输出视频的分辨率高,默认值为 720。 |
WhiteboardId |
String |
否 |
录制白板的 ID。
|
BackgroundColor |
Int |
否 |
白板背景颜色,默认为白色。前三个字节为 RGB 颜色值,第四个字节固定为 0,即 0xRRGGBB00。 |
IsPPTAnimation |
Bool |
否 |
是否录制动态 PPT,默认为 false。
|
PPTAnimationFps |
Int |
否 |
录制动态 PPT 的帧率,默认值为 15,有效范围 [1,30]。 |
录制动态 PPT 功能需单独收费,需开通请先联系 ZEGO 商务人员。若未开通,直接设置 IsPPTAnimation
和 PPTAnimationFps
参数属于无效设置。
MixConfig 成员如下:
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
MixMode |
Int |
否 |
布局方式。
|
MixInputList |
Array of Object |
否 |
自定义布局参数。 详见 MixInputList 成员列表。 |
MixOutputStreamId |
String |
是 |
指定混流输出的流 ID,将作为 OutputFileRule 中的一部分。 |
MixOutputVideoConfig |
Object |
否 |
|
MixOutputAudioConfig |
Object |
否 |
输出音频参数。 详见 MixOutputAudioConfig 成员列表。 |
MixOutputBackgroundColor |
Int |
否 |
录制背景颜色,默认为黑色。前三个字节为 RGB 颜色值,第四个字节固定为 0,即 0xRRGGBB00。 |
MixOutputBackgroundImage |
String |
否 |
视频画布背景图的 URL 地址。
|
MixMaxResolutionStreamId |
String |
否 |
MixMode 设为 3、4、5 时,用于指定显示大画面的流 ID。 |
MixOutputWatermarkImage |
String |
否 |
水印图片的 URL 地址。
|
MixOutputWatermarkImageConfig |
Object |
否 |
水印布局配置。 详见 MixOutputWatermarkImageConfig 成员列表。 |
DefaultMixStreamBackgroundImage |
String |
否 |
流画面默认背景图的 URL 地址,当 FillBlank 为 true 时,指定流不存在或者流中断,且录制模式为混流录制时,会显示该背景图。
|
IsAlwaysMix |
Bool |
否 |
录制任务启动后,是否立即开始录制。默认为 false,表示房间内进行推流后,开始录制。
|
MixOutputWatermarkTimestampConfig |
Object |
否 |
时间水印配置。配置后,时间水印显示在视频右上角,格式为 yyyy-MM-dd HH:mm:ss。 详见 MixOutputWatermarkTimestampConfig 成员列表。 |
RecordSoundWave |
Bool |
否 |
录制任务启动后,是否记录音浪信息。默认为 false。
音浪信息会以 JSON 格式写入到一个独立的文件中,文件名称与录制文件名称一致,后缀为.sw,在录制任务结束后,和录制文件一起上传到指定的云存储位置。 |
SoundWaveType |
Int |
否 |
音浪信息类型。注意:仅当 RecordSoundWave 为 true 时,此参数生效。
|
MixInputList 成员如下:
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
StreamId |
String |
否 |
指定在该画面中录制的流的 ID。 如果未指定,会按照流加入房间的时间顺序进行录制。 |
ViewType |
Int |
否 |
该画面显示内容的类型。
|
Top |
Int |
是 |
画布上该画面左上角的 y 轴坐标,取值范围 [0, 1920],不能超过 Bottom 的值和画布的高。 |
Left |
Int |
是 |
画布上该画面左上角的 x 轴坐标,取值范围 [0, 1920],不能超过 Right 的值和画布的宽。 |
Bottom |
Int |
是 |
画布上该画面右下角的 y 轴坐标,取值范围 [0, 1920],不能超过画布的高。 |
Right |
Int |
是 |
画布上该画面右下角的 x 轴坐标,取值范围 [0, 1920],不能超过画布的宽。 |
Layer |
Int |
是 |
该画面的图层优先级,当两个画面发生重叠时,数值大的显示在上方。 |
FillMode |
Int |
否 |
实际视频流宽高比与画面不一致时的处理方式。
|
BackgroundImage |
String |
否 |
流画面背景图的 URL 地址,仅当指定了 StreamId 时生效。 自定义布局指定的流不存在或者流中断时会显示该背景图。
|
MixOutputVideoConfig 成员如下:
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
Width |
Int |
是 |
输出视频的分辨率宽,单位为像素。 Width 取值小于或等于 1920,且 Width 和 Height 的乘积不能超过 1920 * 1080,否则会报错。 |
Height |
Int |
是 |
输出视频的分辨率高,单位为像素。 Height 取值小于或等于 1920,且 Width 和 Height 的乘积不能超过 1920 * 1080,否则会报错。 |
Fps |
Int |
是 |
输出视频的帧率,默认 15,有效范围 [5,30]。 |
Bitrate |
Int |
是 |
输出视频的码率,单位:bps。例如要设置码率为 1.5 Mbps 时,需要设置设置此参数为 1500*1000,也就是 1500000。 |
MixOutputAudioConfig 成员如下:
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
Bitrate |
Int |
否 |
音频码率,默认值为 48000 bps。 |
MixOutputWatermarkImageConfig 成员如下:
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
Left |
Int |
是 |
画布上该水印左上角的 x 轴坐标,取值范围 [0, 1920],不能超过 Right 的值和画布的宽。 |
Top |
Int |
是 |
画布上该水印左上角的 y 轴坐标,取值范围 [0, 1920],不能超过 Bottom 的值和画布的高。 |
Right |
Int |
是 |
画布上该水印右下角的 x 轴坐标,取值范围 [0, 1920],不能超过画布的宽。 |
Bottom |
Int |
是 |
画布上该水印右下角的 y 轴坐标,取值范围 [0, 1920],不能超过画布的高。 |
坐标系相关说明,请参考 设置混流布局 - 自定义布局。
MixOutputWatermarkTimestampConfig 成员如下:
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
FontSize |
Int |
是 |
字体大小,取值范围 [12, 100],单位 px。 |
RecordOutputParams 成员如下:
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
OutputFileFormat |
String |
否 |
指定录制生成文件的格式,默认为 “mp4”。目前支持 “mp4”、“flv”、“hls”、“jpg” 和 "mp3"。如果录制 “mp4” 或 “flv”,且 StreamType 设为 4,则录制生成的音频文件格式为 aac。 |
OutputFolder |
String |
否 |
录制文件在第三方云存储的输出目录,默认为根目录。 |
OutputFileRule |
Int |
否 |
录制文件命名规则,默认值为 1(暂不支持设置其它命名格式),表示命名格式为:
|
SnapshotInterval |
Int |
否 |
截图周期,单位:秒。录制文件格式为 “jpg” 时有效,取值范围是 [5, 3600],默认值 10。 |
CallbackUrl |
String |
否 |
自定义回调地址的 URL,不填写此参数时会使用服务开通时配置的回调地址。URL 支持 HTTP 和 HTTPS 协议。 |
FragmentSeconds |
Int |
否 |
分片时长,单位:秒,取值范围是 [2, 60],默认值 15。注意:仅当 OutputFileFormat 为“hls”时,此参数生效。 |
StorageParams 成员如下:
各个成员参数的填写方法请参考 StorageParams 中的各个云存储相关的参数如何填写?
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
Vendor |
Int |
是 |
录制文件存储服务提供商,目前支持的存储服务提供商如下:
|
Region |
String |
否 |
云存储指定的地区信息。 |
Bucket |
String |
否 |
云存储 bucket。 |
AccessKeyId |
String |
否 |
云存储的 access key,建议提供只写权限的访问密钥。 |
AccessKeySecret |
String |
否 |
云存储的 secret key。 |
AlibabaCloudVodParams |
Object |
否 |
阿里云 Vod 存储信息。 详见 AlibabaCloudVodParams 成员列表。 |
TencentCloudVodParams |
Object |
否 |
腾讯云 Vod 存储信息。 详见 TencentCloudVodParams 成员列表。 |
EndPoint |
String |
否 |
Vendor为 10 时,填写使用 S3 协议的存储服务的地址。 |
Vendor
设置为 1、2、3、4、7、9、10 时,Region
,Bucket
,AccessKeyId
,AccessKeySecret
必选。Vendor
设置为 5 时,AlibabaCloudVodParams
必选。目前仅支持上传 MP4、FLV 格式文件。Vendor
设置为 6 时,TencentCloudVodParams
必选。目前仅支持上传 MP4、FLV、JPG、MP3 格式文件。Vendor
设置为 8 时,Bucket
,AccessKeyId
,AccessKeySecret
必选。Vendor
设置为 10 时,Bucket
,EndPoint
必选。AlibabaCloudVodParams 成员如下:
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
Region |
String |
是 |
阿里云 Vod 指定的地区信息,例如 cn-shanghai。 |
AccessKeyId |
String |
是 |
阿里云 Vod 的 access key。 |
AccessKeySecret |
String |
是 |
阿里云 Vod 的 secret key,建议提供只写权限的访问密钥。 |
Title |
String |
是 |
阿里云 Vod 视频名称。 |
StorageLocation |
String |
是 |
阿里云 Vod 提供的固定参数。 |
TencentCloudVodParams 成员如下:
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
SecretId |
String |
是 |
腾讯云 Vod 的 access key。 |
SecretKey |
String |
是 |
腾讯云 Vod 的 secret key,建议提供只写权限的访问密钥。 |
Region |
String |
是 |
腾讯云 Vod 指定的地区信息,例如 ap-shanghai。 |
SubAppId |
Int64 |
否 |
腾讯云 Vod 的子应用 ID。 |
https://cloudrecord-api.zego.im/?Action=StartRecord
&AppId=1234567890
&SignatureNonce=15215528852396
&Timestamp=1234567890
&Signature=7a2c0f11145fb760d607a07b54825013
&SignatureVersion=2.0
以下是使用亚马逊 S3、阿里云 OSS、腾讯云 COS、七牛云 Kodo、华为云 OBS、移动云 EOS 请求消息体示例。
{
"RoomId": "xxxx",
"RecordInputParams": {
"RecordMode": 1,
"StreamType": 3,
"MaxIdleTime": 60
},
"RecordOutputParams": {
"OutputFileFormat": "mp4",
"OutputFolder": "record/"
},
"StorageParams": {
"Vendor": 2,
"Region": "oss-xxxx",
"Bucket": "xxxx",
"AccessKeyId": "xxxx",
"AccessKeySecret": "xxxx"
}
}
以下是使用阿里云 Vod 请求消息体示例。
{
"RoomId": "xxxx",
"RecordInputParams": {
"RecordMode": 1,
"StreamType": 3,
"MaxIdleTime": 60
},
"RecordOutputParams": {
"OutputFileFormat": "mp4",
"OutputFolder": "record/"
},
"StorageParams": {
"Vendor": 5,
"Region": "",
"Bucket": "",
"AccessKeyId": "",
"AccessKeySecret": "",
"AlibabaCloudVodParams":{
"Region": "cn-xxxxx",
"AccessKeyId": "xxxx",
"AccessKeySecret": "xxxx",
"Title": "xxxx",
"StorageLocation": "xxxx.oss-cn-xxxx.aliyuncs.com"
}
}
}
以下是使用 S3 协议存储服务提供商的请求消息体示例。
{
"RoomId": "xxxx",
"RecordInputParams": {
"RecordMode": 1,
"StreamType": 3,
"MaxIdleTime": 60
},
"RecordOutputParams": {
"OutputFileFormat": "mp4",
"OutputFolder": "record/"
},
"StorageParams": {
"Vendor": 10,
"Region": "oss-xxxx",
"Bucket": "xxxx",
"AccessKeyId": "xxxx",
"AccessKeySecret": "xxxx",
"EndPoint": "xxxx"
}
}
参数 | 类型 | 描述 |
---|---|---|
Code |
Int64 |
错误码。 |
Message |
String |
错误描述。 |
RequestId |
String |
请求 ID。 |
Data |
Object |
响应对象。 详见 Data 成员列表。 |
Data 成员如下:
参数 | 类型 | 描述 |
---|---|---|
TaskId |
String |
云录制服务分配的任务 ID,长度固定为 16 个字节的字符串。任务 ID 是对一次录制生命周期过程的唯一标识,结束录制时会失去意义。 |
以下是 StartRecord 接口的响应示例。
{
"Code": 0,
"Message": "succeed",
"RequestId": "abcd123",
"Data": {
"TaskId": "XXXXXXXXXXXX"
}
}
联系我们
文档反馈