音视频通话

云端录制

功能介绍

在服务器上对房间内的音视频、影音共享、屏幕共享等通讯内容进行录制,支持自定义录制内容和布局,录制文件在服务器保存,可以通过WEB API下载和删除,也可以直接保存在用户自己的第三方云存储比如阿里云的OSS

1.开通云端录制服务

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

2.开始云端录制

  • 录制左右布局示例图:

左右布局示例图

  • 调用接口:
//配置混图器编码参数:1280*720,  15帧
const cloudMixerCfg = {
    mode: 0,
    videoFileCfg: {
        svrPathName: "/2023-07-21/2023-07-21_13-47-41_Uniapp_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"
            }
        }]
    }
}

const mixerID = RTCSDK.createCloudMixer(cloudMixerCfg);

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

相关API请参考:

3.更新云端录制内容

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

画中画布局示例图

  • 接口调用:
const 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"
            }
        }]
    }
}

RTCSDK.updateCloudMixerContent(mixerID, cloudMixerCfg); //mixerID由createCloudMixer接口返回

相关API请参考:

4.停止云端录制

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

  • 接口调用:
RTCSDK.destroyCloudMixer(mixerID);

相关API请参考:

5.云端录制回调通知

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

  • 回调通知:
//云端录制状态变化通知
RTCSDK.on("cloudMixerStateChanged", ({ mixerID, state, exParam, operUserID }) => {
    console.log(`cloudMixerStateChanged, mixerID: ${mixerID},state: ${state},operUserID: ${operUserID}`);
})
//云端录制输出内容变化通知
RTCSDK.on("cloudMixerOutputInfoChanged", ({ mixerID, outputInfo }) => {
    //获取录像文件时长、文件大小等
	console.log(`cloudMixerOutputInfoChanged, mixerID: ${mixerID},outputInfo: ${JSON.stringify(outputInfo)}`);
})

相关API请参考:

6.获取录像

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

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

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

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