音视频通话

云端录制

更新时间: 2024/06/20 14:30:11

功能介绍

云端录制支持两种模式:

  • 单流模式:可以为房间内指定人员或全部人员的摄像头和声音生成独立的录像文件;
  • 合流模式:可以将房间内摄像头、屏幕共享、影音共享、白板、声音等内容混合录制成一个录像文件;(录制内容和布局支持自定义)

一个房间可以开启一个单流录制和多个合流录制, 录制文件存储支持:

  • 存储到云屋服务器:可以通过WEB API下载和管理
  • 存储到第三方网盘:可通过第三方网盘接口下载和管理;

1.开通云端录制服务

  • 请确保您已成功注册了一个帐号。
  • 请联系商务为对应帐号开通“云端录制服务”。

2.开始云端录制

  • 录制左右布局示例图:

左右布局示例图

  • 调用接口:
//配置混图器编码参数:1280*720,  15帧
const cloudMixerCfg = {
    mode: 0,
    videoFileCfg: {
        svrPathName: "/2021-09-24/2021-09-24_13-47-41_Win32_73542046.mp4",
        vWidth: 1280,
        vHeight: 720,
        vFps: 15,
        layoutConfig: [{
            type: 0,
            top: 180,
            left: 0,
            width: 640,
            height: 360,
            keepAspectRatio: 1,
            param: {
                camid: "Usr1.-1"
            }
        }, {
            type: 0,
            top: 180,
            left: 640,
            width: 640,
            height: 360,
            keepAspectRatio: 1,
            param: {
                camid: "Usr2.-1"
            }
        }]
    }
}

var mixerID = CRVideo_CreateCloudMixer(cloudMixerCfg);

如果录像需要保存到第三方云存储,请在CRVideo_CreateCloudMixer时,传 storageConfig 参数;

相关API请参考:

3.更新云端录制内容

  • 更新成画中画布局示例图:

画中画布局示例图

  • 接口调用:
var cloudMixerCfg = {
    videoFileCfg: {
        layoutConfig: [{
            type: 0,
            top: 0,
            left: 0,
            width: 1280,
            height: 720,
            keepAspectRatio: 1,
            param: {
                camid: "Usr1.-1"
            }
        }, {
            type: 0,
            top: 495,
            left: 880,
            width: 400,
            height: 225,
            keepAspectRatio: 1,
            param: {
                camid: "Usr2.-1"
            }
        }]
    }
}

CRVideo_UpdateCloudMixerContent(mixerID, cloudMixerCfg);

相关API请参考:

4.停止云端录制

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

  • 接口调用:
CRVideo_DestroyCloudMixer(mixerID);

相关API请参考:

5.云端录制回调通知

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

  • 回调通知:
//云端录制状态变化通知
CRVideo_CloudMixerStateChanged.callback = function(mixerID, state, exParam, operUserID){
	console.log(`CRVideo_CloudMixerStateChanged, mixerID: ${mixerID},state: ${state},operUserID: ${operUserID}`);
}

//云端录制输出内容变化通知
CRVideo_CloudMixerOutputInfoChanged.callback = function(mixerID, outputInfo){
    //获取录像文件时长、文件大小等
	console.log(`CRVideo_CloudMixerOutputInfoChanged, mixerID: ${mixerID},outputInfo: ${JSON.stringify(outputInfo)}`);
}

相关API请参考:

6.获取录像

录像停止后,录像文件会开始上传到录像文件存储服务器中(可关注CRVideo_CloudMixerOutputInfoChanged通知,得到上传完成事件)。

可以通过WEB API进行录像文件查询、下载和删除等处理。

也可以登录管理后台,在管理页面上回放和下载录像:
recordMgr

如果将录像保存到第三方云存储上,请使用第三方提供的接口或管理页来获取。