云端录制
功能介绍
在服务器上对房间内的音视频、影音共享、屏幕共享等通讯内容进行录制,支持自定义录制内容和布局,录制文件在服务器保存,可以通过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进行录像文件查询、下载和删除等处理。
也可以登录管理后台,在管理页面上回放和下载录像:
如果将录像保存到第三方云存储上,请使用第三方提供的接口或管理页来获取。