StartRecord
https://cloudrecord-api.zego.im/
调用本接口开始云端录制。
当开发者成功调用 StartRecord 接口后,云端录制服务会根据设置的录制参数录制房间内的音视频流和白板。
- 每个录制任务时间最长为 24 小时。超过 24 小时,录制任务将自动停止录制。
- ZEGO 建议您的每个录制任务都调用 StopRecord 方法停止录制,以免持续录制产生额外的费用。
Request
Query Parameters
可选值: [StartRecord]
接口原型参数
https://cloudrecord-api.zego.im?Action=StartRecord
💡公共参数。应用 Id,由 ZEGO 分配的用户唯一凭证。可从 ZEGO 控制台 获取。
💡公共参数。16 位 16 进制随机字符串(8 字节随机数的 hex 编码)。生成算法可参考 签名示例。
💡公共参数。当前 Unix 时间戳,单位为秒。生成算法可参考 签名示例,最多允许 10 分钟的误差。
可选值: [2.0]
默认值: 2.0
💡公共参数。签名版本号。
💡公共参数。签名,用于验证请求的合法性。请参考签名机制生成。
- application/json
Body
required
- 1:单流录制
- 2:混流录制
- 1:仅录制音频
- 2:仅录制视频
- 3:录制音视频(音视频文件合并)(默认值)
- 4:录制音视频(音频视频文件分离)
- Array[
- ]
- true:用户推流中断时会自动补白,根据录制模式不同,自动补白的效果不同。
-
单流录制: 只对音频进行补白。
说明
若推流端仅推视频流,或录制媒体流类型为仅录制视频,则无法补白。
中断过程中,服务端将为音频补充静音帧,直到使用同样的流 ID 重新在房间内推流。最终,同一份录制文件会保留正常推流内容和静音帧。
-
混流录制:中断过程中,视频将停留在最后一帧(默认)或显示流画面背景图。此外,若混流中没有音频内容了,服务端将补充静音帧,直到使用同样的流 ID 重新在房间内推流。最终,同一份录制文件会保留正常推流内容、补白画面和静音帧(如有)。如果需要使用流画面背景图作为补白,请参考 DefaultMixStreamBackgroundImage 和 BackgroundImage 参数说明。仅当进行混流录制时(即 RecordMode 取值为 2),设置流画面背景图才会生效。
-
- false:用户推流中断时不会补白,该用户下次重推生成新的录制文件。
- 房间无流时长超时导致自动停止云录制,见 MaxIdleTime 的定义。
- 主动停止云录制。
- 1:填充最后一帧(默认值)
- 2:填充指定颜色
- 3:不填充帧
- 小程序端仅支持填充最后一帧,不支持填充指定颜色或不填充帧。
- web 端仅支持填充黑色,不支持填充最后一帧或填充其它颜色或不填充帧。
- 1:录制静音状态下的音频帧(默认值)
- 2:不录制静音状态下的音频帧
- true:录制白板
- false:不录制白板(默认值)
- Array[
- 如果希望开始录制后立刻录制白板,必须指定白板 ID。
- 如果希望开始录制后先不录制白板,可不携带该参数,待需要录制白板时调用 更新白板 接口指定白板 ID。
- true:录制动态 PPT,支持录制 PPT 中的动画效果、视频。
- false:不录制动态 PPT,PPT 中的动画效果、视频不会被录制下来。
- ]
- 1:自定义布局,必须指定 MixInputList
- 2:(默认)平分布局
- 3:水平布局
- 4:垂直布局
- 5:悬浮布局
- Array[
- 1:音视频(默认值)
- 2:白板
- 1:裁剪模式,该模式下优先保证画面被填满,原视频等比缩放填满画面后,四周超出画面的内容会被裁剪。(默认值)
- 2:缩放模式,该模式下优先保证原视频的完整性,原视频等比缩放填满画面后,四周会补一圈黑边。
- 建议背景图的大小和设置的流的画面大小一致,若两者不一致,背景图会被拉伸或压缩以填满整个画面。
- 背景图格式支持 JPG 和 PNG,大小不能超过 5MB,如背景图下载失败,则设置不生效。
- URL 支持 HTTP 和 HTTPS 协议。
- ]
- 1:裁剪模式,该模式下优先保证画面被填满,原视频等比缩放填满画面后,四周超出画面的内容会被裁剪。(默认值)
- 2:缩放模式,该模式下优先保证原视频的完整性,原视频等比缩放填满画面后,四周会补一圈黑边。
- 建议背景图的分辨率与输出视频分辨率一致,如两者分辨率不一致,背景图会被拉伸或压缩以填满整个画面。
- 背景图格式支持 JPG 和 PNG,大小不能超过 5MB,如背景图下载失败,则设置不生效。
- URL 支持 HTTP 和 HTTPS 协议。
- 建议水印图片的大小和设置的水印布局大小一致,若两者不一致,水印图片会被拉伸以填满水印布局的位置。
- 水印图片格式支持 JPG 和 PNG,大小不能超过 5MB,如水印图片下载失败,则设置不生效。
- URL 支持 HTTP 和 HTTPS 协议。
- 自定义布局时,若对指定流 ID 设置了 BackgroundImage 参数,则优先显示 BackgroundImage。
- 建议背景图的大小和设置的流的画面大小一致,若两者不一致,背景图会被拉伸或压缩以填满整个画面。
- 背景图格式支持 JPG 和 PNG,大小不能超过 5MB,如背景图下载失败,则设置不生效。
- URL 支持 HTTP 和 HTTPS 协议。
- true:录制任务启动后,立即开始录制。
- false:录制任务启动后,等房间内进行推流后,开始录制。
- true:录制任务启动后,每间隔 1 秒记录当前所有流的音浪信息。
- false:录制任务启动后,不记录音浪信息。
- 0:记录流 ID 信息(默认值)。示例:
{"time":10, "sound_wave":[{"stream_id":"s1", "volume":0}]} - 1:记录用户 ID 信息。示例:
{"time":10, "sound_wave":[{"user_id":"u1", "volume":0}]} - Array[
- 0:默认类型
- 1:音频
- 2:视频
- 3:音视频
- ]
- TaskId_RoomId_UserId_StreamId_Type_UTC(单流录制)
- Taskid_RoomId_MixOutputStreamId_Type_UTC(混流录制)
- Taskid_Roomid_whiteboard_Type_UTC(单流录制带白板)
- Type:文件类型,V 表示视频文件,A 表示音频文件,VA 表示音视频文件。
- UTC:该文件开始录制时的 UTC 时间,时区为 UTC+0,由年、月、日、小时、分钟、秒和毫秒组成。
- MixOutputStreamId:在 MixConfig 中指定。
- whiteboard:固定,不可修改。
- 1:亚马逊 S3
- 2:阿里云 OSS
- 3:腾讯云 COS
- 4:七牛云 Kodo
- 5:阿里云 Vod
- 6:腾讯云 Vod
- 7:华为云 OBS
- 8:谷歌云 Cloud Storage
- 9:移动云 EOS
- 10:使用 S3 协议的存储服务提供商,需要填写 StorageParams 属性参数 EndPoint。
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必选。
待录制的房间 ID。
RecordInputParams objectrequired
注意
-
FillBlank和MaxIdleTime作用对象不同:-
FillBlank:作用于流本身,只要录制任务还在进行,FillBlank设置为 true 后,若流处于中断状态,则会继续以补白的方式录制,此时该流仍然为中断状态,不影响房间内有无流的判断。-
MaxIdleTime:作用于整个录制任务状态,当房间内无流时长超过MaxIdleTime时,则会中止整个录制任务。- 混流录制模式下,若
StreamType为 1,表示仅录制音频,此时无法录制白板。
可选值: [1, 2]
录制模式。
可选值: [1, 2, 3, 4]
默认值: 3
录制媒体流类型,仅适用于音视频流,白板只会录制视频。
RecordStreamList object[]
待录制的流 ID。
默认值: false
流中断时是否自动补白,默认为 false,即不补白。
中断补白的时机有两种可能:
FillFrame object
可选值: [1, 2, 3]
默认值: 1
画面填充模式。
注意
FrameFillMode 相关:
FrameFillMode 设置为 2 时有效,用于指定填充颜色,默认为黑色。前三个字节为 RGB 颜色值,第四个字节固定为 0,即 0xRRGGBB00。
可选值: [1, 2]
默认值: 1
指定是否录制静音状态下的音频帧数据,仅当单流录制、只录制音频且输出文件格式为 mp3 时生效。
录制文件自动分片的静音时长阈值,单位:秒。
录制过程中如果静音状态时长大于等于该阈值,则该段静音前后会生成为不同的录制文件。
仅当单流录制、只录制音频、输出文件格式为 mp3 且 RecordMuteAudio 为 2 时生效。
指定为 0 时遇静音即分片,不指定或者指定为负数时表示不分片。
默认值: false
是否录制白板。
本参数为 true 时 Whiteboard 参数必选。
Whiteboard object[]
原始白板的宽高比(宽)。
原始白板的宽高比(高)。
默认值: 1280
单流录制白板输出视频的分辨率宽,默认值为 1280。
默认值: 720
单流录制白板输出视频的分辨率高,默认值为 720。
录制白板的 ID。
白板背景颜色,默认为白色。前三个字节为 RGB 颜色值,第四个字节固定为 0,即 0xRRGGBB00。
默认值: false
是否录制动态 PPT,默认为 false。
注意
使用录制动态 PPT 功能前,请联系 ZEGO 商务人员付费开通。否则,设置
IsPPTAnimation和PPTAnimationFps参数无效。
可选值: >= 1 and <= 30
默认值: 15
录制动态 PPT 的帧率,默认值为 15,有效范围 [1,30]。
可选值: >= 5 and <= 86400
默认值: 30
房间内没有任何流、白板之后多长时间自动停止云录制,单位:秒。默认值为 30 秒,该值需大于等于 5,且小于等于 86400(24 小时)。
注意
该参数仅当房间内无流、无白板时生效。
可选值: >= 300 and <= 86400
默认值: 86400
录制任务最大时长,录制持续时间达到该值自动结束。单位:秒。默认值 86400 秒(24 小时),该值需大于等于 300,且小于等于 86400(24 小时)。
MixConfig object
可选值: [1, 2, 3, 4, 5]
默认值: 2
布局方式。
MixInputList object[]
指定在该画面中录制的流的 ID。
如果未指定,会按照流加入房间的时间顺序进行录制。
可选值: [1, 2]
默认值: 1
该画面显示内容的类型。
类型 2 仅在开启白板录制时有效,仅支持将一个画面设置为白板,超过两个及以上会返回错误。
可选值: >= 0 and <= 1920
画布上该画面左上角的 y 轴坐标,取值范围 [0, 1920]。
可选值: >= 0 and <= 1920
画布上该画面左上角的 x 轴坐标,取值范围 [0, 1920]。
可选值: >= 0 and <= 1920
画布上该画面右下角的 y 轴坐标,取值范围 [0, 1920]。
可选值: >= 0 and <= 1920
画布上该画面右下角的 x 轴坐标,取值范围 [0, 1920]。
该画面的图层优先级,当两个画面发生重叠时,数值大的显示在上方。
可选值: [1, 2]
默认值: 1
实际视频流宽高比与画面不一致时的处理方式。
流画面背景图的 URL 地址,仅当指定了 StreamId 参数时生效。自定义布局指定的流不存在或者流中断时会显示该背景图。
可选值: [1, 2]
默认值: 1
(适用于 MixConfig 中的 MixMode 不为 1,即不是自定义布局时)
实际视频流宽高比与画面不一致时的处理方式。
说明
如需了解适用于自定义布局的
FillMode,请参考mixinputlist.FillMode。
指定混流输出的流 ID,将作为 OutputFileRule 中的一部分。
MixOutputVideoConfig object
可选值: <= 1920
输出视频的分辨率宽,单位为像素。
Width 取值小于或等于 1920,且 Width 和 Height 的乘积不能超过 1920 * 1080,否则会报错。
可选值: <= 1920
输出视频的分辨率高,单位为像素。
Height 取值小于或等于 1920,且 Width 和 Height 的乘积不能超过 1920 * 1080,否则会报错。
可选值: >= 5 and <= 30
默认值: 15
输出视频的帧率,默认 15,有效范围 [5,30]。
输出视频的码率,单位:bps。例如要设置码率为 1.5 Mbps 时,需要设置此参数为 1500*1000,也就是 1500000。
MixOutputAudioConfig object
默认值: 48000
音频码率,默认值为 48000 bps。
录制背景颜色,默认为黑色。前三个字节为 RGB 颜色值,第四个字节固定为 0,即 0xRRGGBB00。
视频画布背景图的 URL 地址。
MixMode 设为 3、4、5 时,用于指定显示大画面的流 ID。
水印图片的 URL 地址。
MixOutputWatermarkImageConfig object
可选值: >= 0 and <= 1920
画布上该水印左上角的 x 轴坐标,取值范围 [0, 1920],不能超过 Right 的值和画布的宽。
可选值: >= 0 and <= 1920
画布上该水印左上角的 y 轴坐标,取值范围 [0, 1920],不能超过 Bottom 的值和画布的高。
可选值: >= 0 and <= 1920
画布上该水印右下角的 x 轴坐标,取值范围 [0, 1920],不能超过画布的宽。
可选值: >= 0 and <= 1920
画布上该水印右下角的 y 轴坐标,取值范围 [0, 1920],不能超过画布的高。
流画面默认背景图的 URL 地址,当 FillBlank 参数为 true 且 FrameFillMode = 3 时,指定流不存在或者流中断,且录制模式为混流录制时,会显示该背景图。
默认值: false
录制任务启动后,是否立即开始录制。默认为 false,表示房间内进行推流后,开始录制。
MixOutputWatermarkTimestampConfig object
可选值: >= 12 and <= 100
字体大小,取值范围 [12, 100],单位 px。
默认值: false
录制任务启动后,是否记录音浪信息。默认为 false。
音浪信息会以 JSON 格式写入到一个独立的文件中,文件名称与录制文件名称一致,后缀为.sw,在录制任务结束后,和录制文件一起上传到指定的云存储位置。
可选值: [0, 1]
默认值: 0
音浪信息类型。仅当 RecordSoundWave 为 true 时,此参数生效。
StreamConfigList object[]
流 ID。如果 StreamId 为空,表示设置参数的默认值,其他没有在 StreamConfigList 中出现的流会使用参数默认值。
可选值: [0, 1, 2, 3]
流录制类型,仅在 RecordInputParams 中的 StreamType 等于 3 或 4 生效。
等待输入流的超时时间,单位为毫秒。在此期间,ZEGO 服务端等待获取输入流后才开始混流。若超时仍未收到输入流,混流将自动开始。
RecordOutputParams object
可选值: [mp4, flv, hls, jpg, mp3]
默认值: mp4
指定录制生成文件的格式,默认为 "mp4"。目前支持 "mp4"、"flv"、"hls"、"jpg" 和 "mp3"。如果录制 "mp4" 或 "flv",且 StreamType 设为 4,则录制生成的音频文件格式为 aac。
说明
当推流为 VP8 编码且录制生成文件选择 "mp4" 格式时,需要联系 ZEGO 技术支持进行配置。
录制文件在第三方云存储的输出目录,默认为根目录。
可选值: [1]
默认值: 1
录制文件命名规则。
说明
目前仅支持 "1" 作为唯一命名格式,暂不支持自定义的命名格式。
默认值为 1,表示命名格式为:
文件名中的字段含义如下:
可选值: >= 5 and <= 3600
默认值: 10
截图周期,单位:秒。录制文件格式为 "jpg" 时有效,取值范围是 [5, 3600],默认值 10。
自定义回调地址的 URL,不填写此参数时会使用服务开通时配置的回调地址。URL 支持 HTTP 和 HTTPS 协议。
可选值: >= 2 and <= 60
默认值: 15
分片时长,单位:秒,取值范围是 [2, 60],默认值 15。
注意:仅当 OutputFileFormat 为 "hls" 时,此参数生效。
是否在录制时实时上传分片。
注意:仅当 OutputFileFormat 为 "hls" 时,此参数生效。
M3U8 文件是否只保存视频分片文件(如 .ts 文件)的文件名,而非视频分片的路径。
注意:仅当 RealtimeUploadFragment 为 "true" 时生效。
StorageParams objectrequired
说明
各个属性参数的填写方法请参考 StorageParams 中的各个云存储相关的参数如何填写?
可选值: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
录制文件存储服务提供商,目前支持的存储服务提供商如下:
注意
云存储指定的地区信息。
云存储 bucket。
云存储的 access key,建议提供只写权限的访问密钥。
云存储的 secret key。
AlibabaCloudVodParams object
阿里云 Vod 指定的地区信息。
阿里云 Vod 的 access key。
阿里云 Vod 的 secret key,建议提供只写权限的访问密钥。
阿里云 Vod 视频名称。
阿里云 Vod 提供的固定参数。
TencentCloudVodParams object
腾讯云 Vod 的 access key。
腾讯云 Vod 的 secret key,建议提供只写权限的访问密钥。
腾讯云 Vod 指定的地区信息。
腾讯云 Vod 的子应用 ID。
Vendor 为 10 时,填写使用 S3 协议的存储服务的地址。
Responses
- 200
- application/json
- 数据结构
- 按数据结构生成的示例
Schema
错误码。
错误描述。
请求 ID。
Data object
云录制服务分配的任务 ID,长度固定为 16 个字节的字符串。任务 ID 是对一次录制生命周期过程的唯一标识,结束录制时会失去意义。
{
"Code": 0,
"Message": "succeed",
"RequestId": "abcd123",
"Data": {
"TaskId": "XXXXXXXXXXXX"
}
}{
"Code": 0,
"Message": "succeed",
"RequestId": "abcd123",
"Data": {
"TaskId": "XXXXXXXXXXXX"
}
}
