文档反馈
文档反馈

录制相关

本章节着重介绍实时音视频有关录制的内容。网易云信实时音视频提供服务端录制客户端录制两种录制方式。

服务端录制需要您联系我们的销售,开通此功能,并且需要在管理中心中成功配置消息抄送服务。实时音视频服务端录制目前仅支持点对点音视频通话。假设A和B进行实时音视频通话,服务端录制下来的文件包括:A的纯音频文件(.aac)A的音视频文件(.mp4)B的纯音频文件(.aac)B的音视频文件(.mp4)。如果是纯音频通话,则没有相应的音视频文件,如果您开通了服务端混合录制,则还会生成一个A和B的混合音视频文件(.mp4)。这些录制文件的地址在音视频通话结束之后会通过抄送服务抄送到您的服务器。

客户端录制支持录制单个通话者的音视频文件和录制通话的混合录音。

服务端录制

// 发起通话请求
netcall.call({
  type: Netcall.NETCALL_TYPE_VIDEO,
  account: 'testAccount',
  pushConfig: {},
  sessionConfig:{
    ...
    recordVideo: true,
    recordAudio: true,
    recordType: 0 
  }
})

// 响应通话请求
netcall.response({
  accepted: true,
  beCalledInfo: beCalledInfo,
  sessionConfig: {
    ...
    recordVideo: true,
    recordAudio: true,
    recordType: 0 
  }
})

其他参数已经在最上面发起通话章节介绍过了,不再重复介绍,这里只介绍和录制相关的两个参数

param参数属性 类型 说明
recordVideo bool 是否开启视频录制,默认不开
recordAudio bool 是否开启音频录制,默认不开
recordType number 录制模式,0表示参与混合录制并且录制单人文件,1表示只参与混合录制,2表示只录制单人文件,默认 0

客户端录制(PC Agent)

SDK提供客户端录制功能,可以通过下面的一系列方法进行音视频的录制

开始单人视频录制

netcall.startRecordMp4({
  account: 'testAccount',
  path: 'E:/test.mp4'
}).then(function(obj) {
  console.log('startRecordMp4 通知下发为正式录制', obj)
})
参数名 类型 说明
account string 录制的目标账号,不传或者为空时,默认录制自己
path string 录制的音视频保存路径

停止单人视频录制

netcall.stopRecordMp4({
  account: 'testAccount'
}).then(function(obj) {
  console.log('stopRecordMp4 通知下发为录制结束', obj)
})
参数名 类型 说明
account string 录制的目标账号,不传或者为空时,默认录制自己

开始混音录制

netcall.startRecordAac({
  path: 'E:/test.mp4'
}).then(function(obj) {
  console.log('startRecordAac 通知下发为正式录制', obj)
})
参数名 类型 说明
path string 录制的音视频保存路径

停止混音录制

netcall.stopRecordAac().then(function(obj) {
  console.log('stopRecordAac 通知下发为录制结束', obj)
})

客户端录制(WebRTC)

SDK提供客户端录制功能,可以通过下面的一系列方法(即 startRecordMp4、stopRecordMp4、startRecordAac、stopRecordAac 接口)进行音视频的录制

开始单人视频录制

netcall.startRecordMp4(
  account
).then(function(obj) {
  console.log('startRecordMp4 通知下发为正式录制', obj)
})
参数名 类型 说明
account string 录制的目标账号,不传或者为空时,默认录制自己

停止单人视频录制

netcall.stopRecordMp4().then(function(obj) {
  console.log('stopRecordMp4 通知下发为录制结束', obj)
})

开始混音录制

netcall.startRecordAac().then(function(obj) {
  console.log('startRecordAac 通知下发为正式录制', obj)
})

停止混音录制

netcall.stopRecordAac().then(function(obj) {
  console.log('stopRecordAac 通知下发为录制结束', obj)
})

高级版本地录制

6.2.0版本开始,用户请使用新的录制接口,此方案可以解决用户在录制过程中执行了切换设备的操作而导致的媒体流中断的问题

// 一:开启录制
netcall.startMediaRecording({
  account: account, // 录制对象账号,不填则录制本地
  type: type // 录制类型: camera(摄像头)、screen(屏幕共享)、video(混频,即使用混频功能时,开启录制)、audio(音频)四种
})

// 二:获取录制的下载列表
netcall.listMediaRecording() // {record_1: {endtime,id,isRecording,name,reset,startTime,status,type,uid}}

// 三、停止录制
netcall.stopMediaRecording({
  recordId: record_1 // 这里的值就是前面listMediaRecording接口获取的录制列表的key
}) 

// 四:下载指定的录制文件
netcall.downloadMediaRecording({
  recordId: record_1 // 这里的值就是前面listMediaRecording接口获取的录制列表的key
}) 

// 五[可选]:清除录制状态
netcall.cleanMediaRecording({
  recordId: recordId // 这里的值就是前面listMediaRecording接口获取的录制列表的key
})
×

反馈成功

非常感谢您的反馈,我们会继续努力做得更好。