云端录制

功能简介: 在服务器上对房间内的音视频、白板、屏幕共享等通讯内容进行录制,支持自定义录制内容和布局,录制文件在服务器保存,可以通过WEB API下载和删除。

  1. 开始云端录制
  2. 云端录制文件信息变化通知
  3. 更新云端录制内容
  4. 获取云端录制状态
  5. 停止云端录制

1.开始云端录制

  • 调用接口:

//配置1号混图器,录制尺寸640*360,帧率为8
string mutiMixerCfgs = "[{\
\"id\": "1",\
\"cfg\":  {\"width\":640,\"height\":360,\"frameRate\":8}}\
]";

//配置1号混图器内容: 左右布局(示例图如下),左边为user1的1号摄像头, 右边为user2的1号摄像头
string mutiMixerContents  = "[{\
\"id\":\"1\",\
\"content\": [\
{\"type\":0,\"keepAspectRatio\":1,\"left\":0,\"top\":90,\"width\":320,\"height\":180,\"param\":{\"camid\":\"usr1.1\"}},\
{\"type\":0,\"keepAspectRatio\":1,\"left\":320,\"top\":90,\"width\":320,\"height\":180,\"param\":{\"camid\":\"usr2.1\"}}]\
}]";

//配置1号混图器输出到:a.mp4
string mutiMixerOutputs = "[{\
\"id\": "1",\
\"output\": [{\
  \"type\":0,\
	\"filename\":\"a.mp4\"}]\
}]";
int rst = axMeeting.startSvrMixer(mutiMixerCfgs, mutiMixerContents, mutiMixerOutputs);
if(rst != 0){
    //开启 云端录制 出错
    ...
}

相关API请参考:

左右布局示例图:

左右布局示例图

  • 回调通知:
//云端录制状态变化通知
void Meeting_svrMixerStateChanged(object sender, ICloudroomVideoMeetingEvents_svrMixerStateChangedEvent e)
{
  Console.WriteLine("server record state cahnged: " + e.p_state);
  //状态处理
  ...
}

相关API请参考:

2.云端录制文件信息变化通知

录制过程中都会触发此事件。在此可以实时获得录制状态、录制文件当前的时长、大小,以及录制异常等信息。

  • 回调通知:
//云端录制文件信息变化通知
void Meeting_svrMixerOutputInfo(object sender, ICloudroomVideoMeetingEvents_svrMixerOutputInfoEvent e)
{
	Console.WriteLine("server record state: " +  obj.state);
  //状态处理
}

相关API请参考:

3.更新云端录制内容

  • 接口调用:

//混图器内容:画中画布局(示例图如下, 底层640*360, 上层160*90),底层为user1的1号摄像头, 上层为user2的1号摄像头
string mutiMixerContents  ="[{\
\"id\": \"1\",\
\"content\": [\
{\"type\":0,\"keepAspectRatio\":1,\"left\":0,\"top\":0,\"width\":640,\"height\":360,\"param\":{\"camid\":\"usr1.1\"}},\
{\"type\":0,\"keepAspectRatio\":1,\"left\":475,\"top\":265,\"width\":160,\"height\":90,\"param\":{\"camid\":\"usr2.1\"}}]}\
]";

axMeeting.updateSvrMixerContent(mutiMixerContents);

(2)画中画布局示例图:

画中画布局示例图

相关API请参考:

4.获取云端录制状态

  • 接口调用:

//获取云端录制状态
MIXER_STATE state = getSvrMixerState();

相关API请参考:

5.停止云端录制

停止云端录制后,也会触发事件svrMixerStateChanged

  • 接口调用:

axMeeting.stopSvrMixer();

相关API请参考: