类型定义

CreatInfoObj


{"meetSubject":"test","needPswd":0,"isRegular":0}

参数 类型 说明
meetSubject string 会议名称
needPswd int 是否创建密码;(0:会议无密码,1:系统为会议室创建一个密码)
isRegular int 是否固定会议;(0:普通会议,会议室无人30分钟后,自动消毁; 1:固定会议,会议室一直存在直到用户主动消毁它)

MeetInfoObj

房间对象


  {"ID":100,"pswd":"", "subject":"test", "pubMeetUrl":"www.cloudroom.com/auzjie",
  "creator":"testuser", "memberCount":4, "startTime": 123455
  }

参数 类型 说明
ID int 房间号,0:代表房间信息无效
pswd string 房间密码;(空代表房间无密码)
subject string 房间主题
pubMeetUrl string 房间公共链接
creator string 房间创建者
memberCount int 房间内人数
startTime int 会议开始时间(从1970年1月1日00:00:00起)

MeetInfoObjs

房间对象列表


[
  {"ID":100, "pswd":"", "subject":"test", "pubMeetUrl":"www.cloudroom.com/auzjie", "creator":"testuser", "memberCount":4},
  {"ID":100, "pswd":"", "subject":"test", "pubMeetUrl":"www.cloudroom.com/auzjie", "creator":"testuser", "memberCount":4},
]

详细解释请参考MeetInfoObj

AudioCfgObj

音频配置


  {"micName":"aaa", "speakerName":"aaa"}

参数 类型 说明
micName string 麦克风设备名称
speakerName string 扬声器名称
agc int 是否开启声音增益,0:不开启;1:开启(默认值)
ans int 是否开启降噪,0:不开启;1:开启(默认值)
aec int 是否开启回声消除,0:不开启;1:开启(默认值)

VideoCfgObj

视频配置


  {"size":"1920*1280", "fps":12}

参数 类型 说明
size string 视频尺寸(如:"640*360")
fps int 帧率:视频帧率(5~30)
maxbps int 视频码率(1000~100000000, 例如1m:1000000);(未配置则使用内部默认值,请参见CRVideo_VIDEO_SHOW_SIZE)
qp_min int 最佳质量(18~51, 越小质量越好) (未配置则使用内部默认值22)
qp_max int 最差质量(18~51, 越大质量越差) (未配置则使用内部默认值32)

我们采用的是vbr编码(由质量+码率,双重控制):

  • qp范围:质量参数,为的是达到目标质量后,无需花费更大码率提高质量;
  • maxbps码率控制,是为了确保结果一定不大于“目标码率”(体积受控);
  • 当要超出码率控制时,自动降低质量;当质量达到目标时,自动减少码率甚至无码率输出。

VideoAttributesObj

视频设备私有属性


{ "size":"1280*720", "fps":12, "maxbps":1000000 }

参数 类型 说明
disabled int 取值0:不禁用此设备(默认值),1:禁用此设备;
size string 参见VideoCfgObj的描述,未配置时采用全局配置setVideoCfg
fps int 参见VideoCfgObj的描述,未配置时采用全局配置setVideoCfg
maxbps int 参见VideoCfgObj的描述,未配置时采用全局配置setVideoCfg
qp_min int 参见VideoCfgObj的描述,未配置时采用全局配置setVideoCfg
qp_max int 参见VideoCfgObj的描述,未配置时采用全局配置setVideoCfg
quality2 int 第二档质量配置,支持的属性有:size, maxbps, qp_min, qp_max

说明:

1.一个摄像头出多档质量的视频流,将带来很大的cpu开销;

2.quality2、quality3未配置或配为空,代表关闭对应档位视频流;

3.通过 setVideo2 可以选择观看的视频流;

VideoImgObj

视频帧图像


  { "format":1, "dat":"FKLEOFJXKFD…", "width":1024, "height":768, "frameTime":100}

参数 类型 说明
format int 图像格式,数值参考视频图像格式CRVideo_VIDEO_FORMAT
dat string 图像数据Base64编码
width int 图像宽度(要求8的倍数)
height int 图像高度(要求8的倍数)
frameTime int 图像的时戳

VideoInfoObj

用户视频信息


  {"userID":"111", "videoID":2, "videoName":"camera2"}

参数 类型 说明
userID string 用户id
videoID int 设备id
videoName string 设备名称
isIPCamera int 是否为网络摄像头 (只有获取自已的才有此字段)
isCustomCamera int 是否为自定义摄像头 (只有获取自已的才有此字段)
isScreenCamera int 是否为屏幕摄像头 (只有获取自已的才有此字段)

VideoInfosObj

用户视频信息列表


[
  {"userID":"111","videoID":1, "videoName":"camera1"},
  {"userID":"111","videoID":2, "videoName":"camera2"},
]

视频信息详细解释请参考VideoInfoObj

VideoIDObjs

视频设备对象


[
  {"userID":"111","videoID":1},
  {"userID":"111","videoID":2},
]

参数 类型 说明
userID string 用户id
videoID int 设备id

GetMeetingsParamObj

获取房间列表的参数

参数 类型 说明
QueryMode int 0:查询全部, 1:查询我创建的房间

MixerCfgObj

  • 混图器规格配置

{"width":640,"height":360,"frameRate":8,"bitRate":500000,"defaultQP":28,"gop":120}

参数 类型 说明
width int  图像宽度(要求8的倍数)
height int 图像高度(要求8的倍数)
frameRate int 图像帧率,取值范围:1-30(值越大,cpu要求更高,录像推荐15帧,直播推存25帧)
bitRate int 录制视频文件的最高码率(例如1m:1000000),当图像变化小时,实际码率会低于此值
defaultQP int 录制视频文件的目标质量,缺省值:25。取值范围:0~51,0表示完全无损, 51表示质量非常差,推荐高质量取值18,中质量25, 低质量34
gop int I帧周期(I帧越少码率越小,但直播延时会越大); 文件录制建议15秒一个I帧取值:frameRate x 15(frameRate的15倍); 直播建议4秒一个I帧取值: frameRate x 4(frameRate的4倍);

MutiMixerCfgsObj

  • 混图器规格配置列表

  [
    {
    "id":"1",
    "cfg":{"width":640,"height":360,"frameRate":8,"bitRate":500000,"defaultQP":28,"gop":120}
    },
    ...
  ]

参数 类型 说明
id int 混图器编号
cfg string 混图器规格配置,参见MixerCfgObj

MixerContentObj

  • 混图器内容配置

[
{"type":0, "keepAspectRatio":1,"left":5,"top":10, "width":633,"height":356,"param":{"camid":"usr1.1"}},
{"type":0,"keepAspectRatio":1,"left":642,"top":10, "width":633,"height":356,"param":{"camid":"usr2.1"}}
]

参数 类型 说明
left int 在混图画面中的区域(水平位置)
top int 在混图画面中的区域(垂直位置)
width int 在混图画面中的区域宽
height int 在混图画面中的区域高
type int MIXER_VCONTENT_TYPE,请见后面type描述;
keepAspectRatio int 内容保持原始比例,0不保持,1保持
param string 如:{"camid":"usr2.1"}。请见后面param支持的参数;

type描述:

  • 0.当type=MIXVTP_VIDEO时,表示混图的是摄像头,param必须包含camid.
  • 1.当type=MIXVTP_PIC时,表示混图的是指定的图片,param必须包含resourceid。(仅用于本地混图)
  • 2.当type=MIXVTP_SCREEN时,表示混图的是本地屏幕,param可以增加附加参数screenid/pid/area/window
  • 3.当type=MIXVTP_MEDIA时,表示混图的是影音共享,不用附加任何参数
  • 4.当type=MIXVTP_TIMESTAMP时,表示混图的是时戳,不用附加任何参数
  • 5.当type=MIXVTP_SCREEN_REMOTESHARED时,表示混图的是远端共享的屏幕,不用附加任何参数
  • 6.当type=MIXVTP_WBOARD时,表示混图的是白板,不用附加任何参数。(仅用于云端混图,本地混图应该用MIXVTP_PIC)
  • 7.当type=MIXVTP_TEXT时,表示混图的是文本(支持简单html),param必须包含text (此type下,width和height可为0,此时元素大小由文本信息自动确定)
  • 8.当type=MIXVTP_SCREEN_LOCSHARED时,表示混图的是本地屏幕共享的内容,没有开启共享时内容为全黑图像。

param 支持的参数如下:

  • 1.camid 用户id.摄像头id, 如:"testuser.1"
  • 2.resourceid 具有唯一属性的字符串id,通过setPicResource(resourceid, picJsonVal)将图片存储到id内供混图模块使用
  • 3.screenid 屏幕序号,-1表示主屏
  • 4.pid 进程号
  • 5.area 抓屏区域:"x,y,w,h"
  • 6.text 文件内容,支持一些简单的html标签,如:
<span style=" font-weight:600; color:#00f;">客户姓名:</span>
<span style=" color:#00f;">张三</span> <br/>
<span style=" font-weight:600; color:#00f;">录制日期:</span>
<span style=" color:#00f;">2018-03-01</span>

MutiMixerContentsObj

  • 混图器内容配置列表
[
  {
    "id": "1",
    "content": [
    {"type":0,"keepAspectRatio":1,"left":5,"top":10, "width":633,"height":356,"param":{"camid":"usr1.1"}},
    {"type":0,"keepAspectRatio":1,"left":642,"top":10, "width":633,"height":356,"param":{"camid":"usr2.1"}}
    ]
  },
  ...
]
参数 类型 说明
id int 混图器编号
content string 混图器内容配置,参见MixerContentObj

MixerOutputObj

  • 混图器输出配置

[
  {"type":0,"filename":"D:/1.mp4"},
  {"type":1,"liveUrl":"rtmp://xxx"},
  ...
]

当type==MIXOT_FILE (即 0),可携带以下参数:

参数 类型 说明
type int 输出类型MIXER_OUTPUT_TYPE
filename string 录像路径文件名(本地录像名格式如:d:/1.mp4,服务器录像名格式如:/2018-11-21/1.mp4),支持的文件格式为mp4/ts/flv/avi,其中flv和ts两种格式在程序异常结束时产生的录制文件仍可用。
encryptType int 录像文件是否加密,0:不加密,1:加密;(此参数仅本地录制有效)
isUploadOnRecording int 录像文件是否边录边传,0:不上传,1:边录边传; (此参数仅本地录像有效)
serverPathFileName string 边录边传时,上传到服务器的路径文件名; (此参数仅本地录像有效)

当type==MIXOT_LIVE(即 1),可携带以下参数:

参数 类型 说明
type int 输出类型MIXER_OUTPUT_TYPE
liveUrl string 直播推流地址,支持rtmp/rtsp;
errRetryTimes int 直播推流异常时,重试次数

MutiMixerOutputsObj

  • 混图器输出配置列表
[
  {
    "id": "1",
    "output": [
      {"type": 0,"filename": "D:/1.mp4"},
      {"type": 1,"liveUrl": "rtmp://xxx"}
    ]
 },
 ...
]

参数 类型 说明
id int 混图器编号
output string 混图器输出配置,请参见MixerOutputObj

MixerOutputInfoObj

  • 录制文件、直播信息

{ "state":2, "duration":100,"fileSize":10000 }

参数 类型 说明
state int 状态,请见后面描述;
duration int 录像文件时长,单位:毫秒;
fileSize int 录像文件大小;
errCode int 错误码

state状态描述:

0:输出对象已创建; 1:输出目标信息更新; 可以从结构中取得:duration, fileSize参数; 2:输出对象已关闭; 可以从结构中取得:duration, fileSize参数; 3:输出对象异常;可以从结构中取得:err参数;

SvrMixerOutputInfoObj

  • 云端录制文件、直播信息

{"id":"1", "fileName":"xxx.mp4", "state":2, "duration:"3151, "filesize":1241410}

参数 类型 说明
id string 用户ID
filename string 云端录制文件名称
state int 云端录制状态,请参考云端录制状态

扩展字段:

当 state 为 RFS_FINISHED时,附加以下字段:

参数 类型 说明
duration int 录制文件时长
filesize int 录制文件大小

当 state 为 RFS_REC_FAIL 时,附加以下字段:

参数 类型 说明
errCode int 请参考错误码

MemberObj

成员对象


  {"userID":"111", "nickName":"aaa", "audioStatus":"1", "videoStatus":"1"}

参数 类型 说明
userID string 用户ID
nickname string 昵称
audioStatus int 音频状态,数值参考麦克风状态ASTATUS
videoStatus int 视频状态,数值参考摄像头(视频)状态定义VSTATUS

MembersObj

成员对象列表


[
  {"userID":111,"nickName":"aaa", "audioStatus":1,"videoStatus":1},
  {"userID":222,"nickName":"bbb", "audioStatus":1,"videoStatus":1}
]

单个成员详细解释请参考MemberObj

HttpReqInfoObj

Http文件传输请求对象


{ "bUploadType" : 1, "filePathName" : "D:/CloudroomVideoSDK_file/test.log", "fileVersion" : "V1.0", "httpUrl" : "http://10.0.7.130:8080/Upload/test.log" }

参数 类型 说明
bUploadType int 传输类型,0:下载类型,1:上传类型
filePathName string 本地完整路径文件名
httpUrl string 目标URL
extParams string 上传给http server的扩展参数, 缺省放在http header中。其它方式参见transforCfg中的extParamsTransType配置。
transforCfg string 特殊处理配置,字典数据.例如{"decodeCREEFile":0}

详细如下:

(1)decodeCREEFile:此参数仅上传有效。0:上传原始文件,1:上传解密的文件(云屋录制加密文件)

(2)extParamsTransfType:此参数仅上传有效。当取值缺省或为0时:extParams在header中传送。取值为1时:extParams在multipart/form-data中传送

HttpFileInfoObj

Http文件传输状态信息对象


{ "bUploadType" : 1, "filePathName" : "D:/CloudroomVideoSDK_file/test.log",
"httpUrl" : "http://10.0.7.130:8080/Upload/test.log",
"fileSize" : 53788511, "finishedSize" : 53788511,  "state" : 3 }

参数 类型 说明
bUploadType int 传输类型,0:下载类型,1:上传类型
filePathName string 本地完整路径文件名
httpUrl string 目标URL
transforDeal string 特殊处理配置,字典数据
extHeaders string http头部扩展信息,字典数据。
fileSize int 文件大小
finishedSize int 已传输大小
state int 文件传输状态,详见:CRVideo_HTTP_TRANSFER_STATE

HttpFileInfoObjs

Http文件传输状态信息对象列表


[
{ "bUploadType" : true, "filePathName" : "D:/CloudroomVideoSDK_file/test.log", "httpUrl" : "http://10.0.7.130:8080/Upload/test.log", "transforDeal" : {}, "fileSize" : 53788511, "finishedSize" : 53788511,  "state" : 3 },
...
]

单个文件传输状态请参考HttpFileInfoObj

QueueStatusObj

队列状态


{"queID":0,"agent_num":12,"wait_num":3,"srv_num":11}

参数 类型 说明
queID string 队列ID
agent_num int 代理数量
wait_num int 排队数量
srv_num int 坐席数量

QueueInfoObj

队列信息


{"queID":0,"name":"aaa","desc":"this is desc","prio":1}

参数 类型 说明
queID string 队列ID
name string 队列名称
desc string 队列描述
prio int 优先级,值越小优先级越高

QueuingInfoObj

排队信息


{"queID":0,"position":3,"queuingTime":17}

参数 类型 说明
queID string 队列ID 我排的队列(-1:代表我没有排队;-2:代表我正在房间中,通过GetSessionInfo可获取相关信息)
position string 我的位置
queuingTime string 我排队的时长(单位s)

RecordFileInfoObj

录制文件信息


{"fileName":"1.mp4","size":10240,"state":1,"uploadPercent":100}

参数 类型 说明
fileName string 文件名,全路径
size int 文件大小(字节)
duration int 文件时长(毫秒)
state int 0没有上传,1上传中,2 上传完毕
uploadPercent int 上传进度,state为1时关注此字段

RecordVideoInfoObj

录制视频对象列表


[
{"left":426, "top":124, "width":409, "height":231, "type":0, "keepAspectRatio":1, "param": {"camid":"c90d98e2-e50d-4abe-a318-104271a47cb6.1"}},
 ……
]

参数 类型 说明
left int
top int
width int
height int
param string 附加参数

Properties

Name Type Description

type MIXER_VCONTENT_TYPE 录制类型

ScreenShareCfgObj

屏幕共享配置对象


{"maxFPS":8, "maxKbps":800, "catchWnd":0, "catchRect":{"left":0, "top":0,  "width":1920, "height":1080}}

参数 类型 说明
maxFPS int 帧率, 缺省为8 (当网络发不动时,帧率会自动下降)
maxKbps int 最大码率,缺省为800kbps
catchWnd int 共享窗口的窗口句柄,用于实现窗口共享
catchRect string {"left":xx,"top":xx,"width":xx,"height":xx}用于实现区域共享
monitorID int 显视器id,缺省或-1时共享的是主显视器

SessionInfoObj

会话信息


{"callID":"0000123","peerID":"123","peerName":"aaa", "bCallAccepted":1,"meetingID":321321,"meetingPswd":"123456","duration":120}

参数 类型 说明
callID string 呼叫ID
peerID string 目标用户ID
peerName string 目标用户昵称
bCallAccepted int 呼叫是否被对方接受 0:暂未接受,1:已接受
meetingID int 呼叫接受后,分配的房间ID
meetingPswd string 房间密码
duration int 持续的时长(单位s)

QueInfoObj

队列信息

参数 类型 说明
queID int 队列id
name int 队列名称
desc string 队列描述
prio int 优先级,值越小优先级越高

QueStatusObj

队列状态


{"queID":0,"agent_num":12,"wait_num":3,"srv_num":11}

参数 类型 说明
queID int 队列id
agent_num int 坐席数量
wait_num int 排队客户数量
srv_num int 正在服务的客户数量

QueUser

队列用户信息


{"queID":0,"position":3,"queuingTime":17}

参数 类型 说明
queID int 队列ID
usrID string 用户ID
name string 用户昵称
queuingTime string 已排队时长(秒)
param string 用户呼叫时的私有数据

SubPageObj

子功能区信息

参数 类型 说明
userID int 用户ID
boardID int 白板id

ListDocFileRsltObj

文档列表

{
    "files":
    [
      {"ownerID": "","ownerName": "",  "name": "","orgFileName":"", "md5": "","ctime": "", "size": "","orgSize":"", "convertStatus": ""},
      {"ownerID": "","ownerName": "", "name": "","orgFileName":"", "md5": "","ctime": "", "size": "","orgSize":"", "convertStatus": ""}
    ],
    "dirs": [ "aaa", "bbb" ]
}
参数 类型 说明
files json数组 查询目录下的所有文件
dirs string 查询目录下的所有目录
ownerID string 文件的所有者
ownerName string 文件所有者名称
name string 在网盘里的文件名
orgFileName string 原始文件名
md5 string 文件的md5值
ctime string 文件的上传时间
size int 压缩后在网盘里的文件大小
orgSize int 文件的原始大小
convertStatus int 文档的转换状态: 0, 代表转换完成; 1, 代表文档转换中; 2, 代表未转换(或转换失败)

GetDocPageInfoRsltObj

获取文档页信息结果


{"width": 1280,"height": 720,"fileList": ["/docxxx/page1", "/docxxx/page2"]}

参数 类型 说明
width int 文档的图像宽度
height int 文档的图像高度
fileList string 每页文档在服务器上的路径文件名

ScreenShareCfgObj

屏幕共享配置


  {"maxFPS":8, "maxKbps":800}

参数 类型 说明
maxFPS int 帧率, 缺省为8 (当网络发不动时,帧率会自动下降)
maxKbps int 最大码率, 缺省800kbps
catchRect string {"left":10,"top":10,"width":100,"height":100}用于实现区域共享
catchWnd string 用于实现区域共享,如{"left":10,"top":10,"width":1000,"height":800}
monitorID int 显示器序号,与系统显示编号一致,-1代表主屏

RecordVideosObj

录制视频对象列表


  {"left":426, "top":124, "width":409, "height":231, "type":0, "keepAspectRatio":1,
  "param": {"camid":"c90d98e2-e50d-4abe-a318-104271a47cb6.1"}
  }

参数 类型 说明
left,top,width,height int 在录制中的区域(相对于录像尺寸)
type int 混图内容类型 说明:

当type=MIXVTP_VIDEO时,表示录制的是摄像头区域,param必需包含:

camid:"用户id.摄像头id"

当type=MIXVTP_PIC时,表示指定的图片,param 必须包含:

resourceid: xxx;

(详见setPicResource(resourceid, picJsonVal)

当type=MIXVTP_SCREEN时,表示录制的是屏幕,可以增加附加参数:

screenid:屏幕序号(-1:表示主屏);

pid:进程号; (0:未指定进程)

area:x,y,w,h;(抓屏区域,无此参数时,代表抓全屏)

当type= MIXVTP_TIMESTAMP时,不用附加任何参数

keepAspectRatio int 内容保持原始比例;(0:不保持;1:保持)
param string 具体值与type相关

MediaInfoObj

影音文件信息


{ "userID":"111", "state":1, "mediaName":"D:/1.mp4"}

参数 类型 说明
userID string 用户id
state int 播放状态 0:播放 1:暂停 2:未播放
mediaName string 影音文件名

PicResourceObj

图片资源


{"fmt":"picfile","dat":"c:\test.jpg"}

参数 类型 说明
fmt string 资源格式,可取值:"yuv420p","rgb32","picfile","picdat"
dat string

资源数据,不同格式时,要提供的数据各不一样:

fmt为"yuv420p"时: dat存放的是base64(yuv420p数据);

fmt为"rgb32"时: dat存放的是base64(rgb32数据);

fmt为"picfile"时: dat存放的是“本地文件名”;

fmt为"picdat "时:dat存放的是base64(图片文件内容);

width int 图像宽度(像素), 在fmt为"yuv420p","rgb32"时,需要此参数
height int 图像高度(像素), 在fmt为"yuv420p","rgb32"时,需要此参数

BoardObj

白板对象


{ "boardID":"x", "title": "board", "width": 1024, "height":768, "pageCount":1}

白板信息

参数 类型 说明
boardID int 白板id
title string 白板名称
width int 白板宽度
height int 白板高度
pageCount int 页数
curPage int 当前页
pagePos1 string 扩展参数1
pagePos2 string 扩展参数2

BoardObjs

白板信息列表


[
  { "boardID":"a","title":"board", "width":1024,"height":768, "pageCount":1},
  { "boardID": "b","title": "board", "width": 1024,"height":768, "pageCount":1}
]

BoardElementObj

白板图元


{ "elementID": "xx", "type":100, "left":0, "top":0 }

参数 类型 说明
elementID string 图元id
type int 图元的类型,值100以下为云屋保留值,100及以上为自定义值
left、top int 图元在页内的左上角位置
... string 可自由扩展

说明:

1.elementID必须调用createElementID()获取, 即使是曾经调此接口创建的然后存入了磁盘文件,再次读入房间时,所有elementID也需要重新生重。

2.如果要和云屋产品互通,那就需要按云屋的定义取值,可以联系云屋获取相关文档

BoardElementObjs

白板图元列表


[
  { "elementID": "xx", "type":100, "orderID":0, "left":0, "top":0},
  { "elementID":"yy", "type":100, "orderID":0, "left":100, "top":100}
]

MeetingAttrOptions

操作房间属性选项


{"notifyAll":1}

参数 类型 说明
notifyAll int 1:通知房间所有人员,0(默认值):不通知。

MeetingAttrObjs

会议属性集


{
    "userdef Key1": {
        "value": "11111",
        "lastModifyUserID": "111",
        "lastModifyTs": 11111
    },
    "userdef Key2": {
        "value": "22222",
        "lastModifyUserID": "222",
        "lastModifyTs": 22222
    }
}

参数 类型 说明
value string 属性值
lastModifyUserID string 最后修改者
lastModifyTs int 最后的修改时间,1970-1-1 0:00:00以来的秒数

UsrMeetingAttrObjs

用户属性集

{
    "userid1": {
        "userdef Key1": {
            "value": "11111",
            "lastModifyUserID": "111",
            "lastModifyTs": 11111
        },
        "userdef Key2": {
            "value": "22222",
            "lastModifyUserID": "222",
            "lastModifyTs": 22222
        }
    },
    "userid2": {
        "userdef Key1": {
            "value": "11111",
            "lastModifyUserID": "111",
            "lastModifyTs": 11111
        },
        "userdef Key2": {
            "value": "22222",
            "lastModifyUserID": "222",
            "lastModifyTs": 22222
        }
    }
}