音视频通话

开启云端录制

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 服务器

说明audioFileCfgvideoFileCfg 请至少选择一种录制格式。


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://

单流模式说明:
录制时:svrPathNamesubscribeVideos必传,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参数说明:

  • 当type =0时,表示摄像头,param必须包含camid;
  • 当type =3时,表示影音共享,不用附加任何参数;
  • 当type =5时,表示共享的屏幕,不用附加任何参数;
  • 当type =6时,表示白板,不用附加任何参数;
  • 当type =10时,表示文本,width 和 height 将被忽略,元素大小由文本信息自动确定。 param必须包含text,可选text-color,bk-color,font-size,text-margin;

param参数说明:

  • 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 云存储配置缺少必填参数