开启云端录制
API接口URL
https://sdk.cloudroom.com/CLOUDMEETING-API/v2/record/start
请求方式:POST
参数
接口参数
| 名称 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
| RoomId | Int | 是 | 房间号 |
| cfg | Cfg | 是 | 录制配置 |
Cfg 参数说明:
| 名称 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
| mode | Int | 是 | 录制模式: 1-单流录制:将涉及到的声音流、图像流存到各自独立的文件中 0-合流录制:将声音/图像混合到一个文件 |
| audioFileCfg | AudioFileCfg | 否 | 生成音频文件配置 |
| videoFileCfg | VideoFileCfg | 否 | 生成视频文件配置 |
| storageConfig | StorageConfig | 否 | 云存储配置;不传则默认存储在 SDK 服务器 |
说明:audioFileCfg 和 videoFileCfg 请至少选择一种录制格式。
AudioFileCfg 音频文件配置
1.单流模式参数说明:
| 名称 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
| svrPathName | String | 是 | 带路径的文件名,文件格式支持“mp3”、“wav”; 文件名支持变量(路径不支持): $UID$:用户ID $UNAME$:用户昵称 $DATE$:日期,格式为YYYYMMDD $TIME$:时间,格式为hhmmss示例: /2025-12-01/房间号/$UID$_$TIME$.mp3 |
| subscribeAudios | String[] | 是 | 指定生成哪些人的音频文件; 取值: ["_cr_all_"]或["userId1","userId2"];_cr_all_代表生成所有人; |
2.合流模式参数说明:
| 名称 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
| svrPathName | String | 是 | 带路径的文件名,文件格式支持“mp3”、“wav”,示例:/xxx/xxx/xxx.mp3 |
| aChannelType | Int | 否 | 音频通道类型:0-单声道(默认),1-左右双声道 |
| aChannelContent | String[] | 否 | 左右声道模式下必须传入两个用户 ID,如 ["userId1","userId2"](前者左声道,后者右声道);单声道模式下必须为空 |
VideoFileCfg 视频文件配置
1.单流模式参数说明:
| 名称 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
| svrPathName | String | 否 | 带路径的文件名,格式支持:mp4、flv、ts、avi; 文件名支持变量(路径不支持): $UID$:用户ID$UNAME$:用户昵称$CAMID$:摄像头编号$DATE$:日期,格式为YYYYMMDD$TIME$:时间,格式为hhmmss示例: /2025-11-30/会议号/$UID$_cam$CAMID$_$TIME$.mp4 |
| subscribeVideos | String[] | 是 | 指定生成哪些人的摄像头对应的视频文件,取值:["_cr_all_"]或 ["_cr_allDefCam_"]或["userId1.camId", "userId2.camId", ..."];_cr_all_代表所有人所有摄像头;_cr_allDefCam_ 代表生成所有人的默认摄像头 |
| aStreamType | Int | 否 | 视频文件内音频来源:0-仅自己声音(默认),1-所有人声音 |
| pushCfg | PushCfg[] | 否 | 推流配置列表;仅推流时必传 |
PushCfg 推流配置
| 名称 | 类型 | 说明 |
|---|---|---|
| streamID | String | 流id,格式为: "UserId.camId" |
| urls | String[] | 推流url列表,支持推流协议: rtmp://, rtsp:// |
单流模式说明:
录制时:svrPathName、subscribeVideos必传,aStreamType可选;
推流时:pushCfg必传,aStreamType可选;
2.合流模式参数说明:
| 名称 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
| svrPathName | String | 是 | 带路径的文件名,支持同时录制文件和推流,多个地址以";"分隔。 录制文件:文件格式支持 mp4、flv、ts、avi,如 /xxx/xxx.mp4 推流地址:支持 rtmp://、rtsp:// 协议,如 rtmp://push.example.com/live/stream1 示例:"/xxx/xxx.mp4;rtmp://xxx1;rtmp://xxx2;" |
| aChannelType | Int | 否 | 音频通道类型:0-单声道(默认),1-左右双声道 |
| aChannelContent | String[] | 否 | 音频通道内容。 左右声道模式下必须传入两个用户 ID,如 ["userId1","userId2"](前者左声道,后者右声道);单声道模式下必须为空 |
| vWidth | Int | 是 | 视频宽度 |
| vHeight | Int | 是 | 视频高度 |
| vFps | Int | 否 | 视频帧率,取值范围0-30,默认12 |
| vBps | Int | 否 | 视频码率,取值请参考视频流默认码率定义默认会根据视频尺寸生成码率 |
| vQP | Int | 否 | 视频质量,取值范围0-51(0表示完全无损, 51表示质量非常差),推荐高质量取值18,中质量25,低质量34, 默认值19 它与vBps共同影响最终文件大小和图像质量,逻辑关系为: 1. 当码率要超出vBps时,质量将自动被降低,保持码率不超过vBps; 2. 当图像质量达到vQP后,码率将自动降低,节省空间; |
| layoutConfig | LayoutConfig[] | 是 | 合流布局内容列表 |
LayoutConfig 合流布局配置
| 名称 | 类型 | 说明 |
|---|---|---|
| left | int | 元素在布局图像中的区域(水平位置) |
| top | int | 元素在布局图像中的区域(垂直位置) |
| width | int | 元素在布局图像中的区域宽 |
| height | int | 元素在布局图像中的区域高 |
| keepAspectRatio | int | 是否保持原始比例:0-不保持,1-保持。默认 1 |
| type | int | 元素类型,见下方 type取值说明 |
| param | Object | 元素参数,根据 type 不同传入不同字段,见下方 param支持的参数 |
- 当type =0时,表示摄像头,param必须包含camid;
- 当type =3时,表示影音共享,不用附加任何参数;
- 当type =5时,表示共享的屏幕,不用附加任何参数;
- 当type =6时,表示白板,不用附加任何参数;
- 当type =10时,表示文本,width 和 height 将被忽略,元素大小由文本信息自动确定。 param必须包含text,可选text-color,bk-color,font-size,text-margin;
- camid:用户id.摄像头id。默认摄像头的值为-1,如:"testuser.-1"
- resourceid:具有唯一属性的字符串id,通过setPicResource将图片存储到sdk内供混图模块使用
- screenid:屏幕序号,-1表示主屏
- pid:进程号
- area:抓屏区域:"x,y,w,h"
- text:文本内容,支持时间戳参数"%timestamp%",格式为:YYYY-MM-DD HH:MM:SS
- text-color:文本颜色,支持格式:"#RGB","#RRGGBB", "#AARRGGBB", 默认"#FFFFFF"
- bk-color:背景色,支持格式:"#RGB","#RRGGBB", "#AARRGGBB", 默认"#7D000000"
- font-size:字体大小,默认18
- text-margin:边距,默认5
StorageConfig 云存储配置
| 名称 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
| vendor | Int | 是 | 第三方云存储平台: 1-阿里云 |
| region | String | 是 | 第三方云存储指定的地区信息 |
| bucket | String | 是 | 第三方云存储的 bucket |
| accessKey | String | 是 | 第三方云存储的 access key |
| secretKey | String | 是 | 第三方云存储的 secret key |
| endPoint | String | 否 | 第三方云存储的完整路径,当设置该参数后,region参数不生效 |
请求示例
单流录制示例
为房间中所有人录制独立的音频文件和默认摄像头视频文件:
{
"RequestId":"95257a6e-dd78-19f9-0c78-3f3de5d35191",
"CompID":111111,
"SecretKey":"08635988d9be4151fcb5251b0af2b3c1",
"AppId":"4026859001",
"RoomId":"81954961",
"cfg": {
"mode": 1,
"audioFileCfg": {
"svrPathName": "/2025-12-01/房间号/$UID$_$TIME$.mp3",
"subscribeAudios": ["_cr_all_"]
},
"videoFileCfg": {
"svrPathName": "/2025-12-01/房间号/$UID$_cam$CAMID$_$TIME$.mp4",
"subscribeVideos": ["_cr_allDefCam_"],
"aStreamType": 0
}
}
}
合流录制示例
录制一个 2 分屏左右布局图像 + 房间声音的 mp4 文件:
{
"RequestId":"95257a6e-dd78-19f9-0c78-3f3de5d35191",
"CompID":111111,
"SecretKey":"08635988d9be4151fcb5251b0af2b3c1",
"RoomId":81954961,
"cfg": {
"mode": 0,
"videoFileCfg": {
"svrPathName": "/2025-12-01/房间号/2025-12-01_1764236203.mp4",
"aChannelType": 0,
"vWidth": 1280,
"vHeight": 720,
"layoutConfig": [
{
"type": 0,
"top": 180,
"left": 0,
"width": 640,
"height": 360,
"keepAspectRatio": 1,
"param": {
"camid": "usr1.1"
}
},
{
"type": 0,
"top": 180,
"left": 0,
"width": 640,
"height": 360,
"keepAspectRatio": 1,
"param": {
"camid": "usr2.-1"
}
}
]
}
}
}
合流布局配置示例
"layoutConfig":[
//录制“usr1”的1号摄像头
{
"type": 0,
"keepAspectRatio": 1,
"left": 5,
"top": 10,
"width": 633,
"height": 356,
"param": {
"camid": "usr1.1"
}
},
//录制“usr2”的默认摄像头
{
"type": 0,
"keepAspectRatio": 1,
"left": 642,
"top": 10,
"width": 633,
"height": 356,
"param": {
"camid": "usr2.-1"
}
},
//录制时间戳
{
"type": 10,
"left": 980,
"top": 660,
"param": {
"text": "%timestamp%",
"color": "#ffffff",
"font-size": 30
}
},
//录制白板
{
"type": 6,
"left": 0,
"top": 0,
"width": 1280,
"height": 720,
"param": {
"background": "#FFFFFFFF"
}
}
]
云存储配置示例
"storageConfig":{
"vendor":1,
"region":"oss-cn-guangzhou",
"bucket":"aliosstest",
"accessKey":"ABCKDtA******jzZhsdih",
"secretKey":"sdfsdfxsKE********yNO5E5zbj"
}
返回数据
| 名称 | 类型 | 说明 |
|---|---|---|
| RspCode | String | 响应码 |
| RspDesc | String | 响应描述 |
| Data | Map | 数据集合 |
Data 数据
| 名称 | 类型 | 说明 |
|---|---|---|
| RecordID | String | 录制ID |
返回参数示例
{
"RspCode":0,
"RspDesc":"请求成功",
"Data":{
"RecordID":"9eda74eecb5de36e492dbab55aaaa071"
}
}
返回状态码RspCode说明
| 数值 | 说明 |
|---|---|
| 0 | 请求成功 |
| 1 | 用户所属企业没有接口API权限 |
| 2 | 账号不存在 |
| 3 | 密码错误 |
| 4 | 未获取到正确参数 |
| 5 | 未知错误 |
| 6 | 缺少必传参数 |
| 35 | 房间号不存在 |
| 41 | 房间中没有在线成员 |
| 43 | 不支持的录制模式 |
| 45 | 录制ID不存在 |
| 70 | subscribeVideos 参数错误,请检查格式和内容 |
| 71 | subscribeAudios 参数错误,请检查格式和内容 |
| 72 | 请至少选择一种录制格式,音频或视频 |
| 73 | aChannelType 参数错误,有效值为0或1 |
| 74 | aChannelContent 参数错误,请检查格式和内容 |
| 75 | 房间内人数少于2人,不能录制左右声道 |
| 76 | vFps 参数错误,有效取值范围为0-30 |
| 77 | vQP 参数错误,有效取值范围为0-51 |
| 78 | 视频文件格式错误 |
| 79 | 音频文件格式错误 |
| 80 | 布局配置参数错误 |
| 81 | 用户id不存在 |
| 82 | 未开通录制权限 |
| 83 | 推流配置参数错误 |
| 84 | 云存储配置缺少必填参数 |