录制

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

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

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

服务端录制

服务端录制客户端配置

键常量名 键常量值 值类型 说明
kNIMVChatRecord record int 是否需要服务器录制音频数据 >0表示是,默认不填为0 (需要服务器配置支持,本地录制直接调用接口函数)
kNIMVChatVideoRecord video_record int 是否需要服务器录制视频数据 >0表示是 ,默认不填为0(需要服务器配置支持,本地录制直接调用接口函数)
kNIMVChatSingleRecord single_record int (多人模式有效)是否需要录制多人模式下的本人数据 >0表示是 (需要服务器配置支持,并且开kNIMVChatRecord,kNIMVChatVideoRecord其中一个
描述 多人录制(销售后台) 音频混合录制(客户端) 视频混合录制(客户端) 单人音视频录制
开关设置 老师开,学生关
生成文件 / 混音aac文件x1 混屏mp4文件x1 音频aacx1+视频mp4x1

服务端录制

服务器录制需要开通此功能,并且在本地发起时打开服务器录制开关。

服务器录制信息回调

当通话连接成功后,在连接成功信息中会带有指定的音视频文件名。如果服务器有录制,会录制该文件。

API原型
参数说明
参数 类型 说明
channel_id long 频道id
code int 状态码见NIMVChatConnectErrorCode
record_file string 服务器录制的音频文件名 无效
video_record_file string 服务器录制的视频文件名 无效
参数 类型 说明
type enum 回调类型kNIMVideoChatSessionTypeConnect
channel_id int64 频道id
code int 错误码NIMVChatConnectErrorCode,200代表连接成功
json_extension string Json string 扩展,如果成功返回 kNIMVChatVideoRecordFile和kNIMVChatRecordFile,该文件名参数暂时无效
user_data void* 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理
示例

客户端录制

音视频录制

开始录制

开始本地录制mp4文件,允许录制自己或其他单个成员的mp4文件。实际文件开始录制要等录制状态的回调通知。

API原型
参数说明
参数 类型 说明
path string 录制文件路径
recordInfo Json 录制信息 NIMVChatMP4RecordJsonEx
json_extension string Json string 扩展,kNIMVChatUid录制的成员,如果是自己填空(录制时允许同时混音对端声音,需要填kNIMVChatMp4AudioType),kNIMVChatMp4Recode标识是否重编码(默认打开,打开后kNIMVChatMp4Width和kNIMVChatMp4Height有效[16-1280有效])
cb function 结果回调
user_data void* APP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
返回值说明

无返回值。

回调返回错误码:NIMVChatMp4RecordCode,定义如下:

枚举定义 说明
kNIMVChatMp4RecordClose 0 MP4结束
kNIMVChatMp4RecordVideoSizeError 1 MP4结束,视频画面大小变化
kNIMVChatMp4RecordOutDiskSpace 2 MP4结束,磁盘空间不足
kNIMVChatMp4RecordThreadBusy 3 MP4结束,录制线程繁忙
kNIMVChatMp4RecordCreate 200 MP4文件创建
kNIMVChatMp4RecordExsit 400 MP4文件已经存在
kNIMVChatMp4RecordCreateError 403 MP4文件创建失败
kNIMVChatMp4RecordInvalid 404 通话不存在
示例
结束录制

主动结束本地录制mp4文件。

API原型
参数说明
参数 类型 说明
recordInfo Json 录制信息 NIMVChatMP4RecordJsonEx
json_extension string Json string 扩展,kNIMVChatUid录制的成员,如果是自己填空
cb function 结果回调
user_data void* APP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
返回值说明

无返回值。

回调返回错误码:NIMVChatMp4RecordCode

示例
录制相关回调

当开始MP4录制时,等有实际数据开始录制会回调录制开始的通知,等录制结束或录制异常会有录制结束的通知。

API原型
参数说明
参数 类型 说明
channel_id long 频道id
code int 无效错误码
mp4_info object 录制回调信息
参数 类型 说明
type enum 回调类型kNIMVideoChatSessionTypeMp4Notify
channel_id int64 频道id
code int 无效错误码
json_extension string Json string 扩展,返回kNIMVChatMp4Start或kNIMVChatMp4Close
user_data void* 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理
示例

通话录音

开始通话录音

开始本地录制混音文件,将录制通话中所有成员声音。

API原型
参数说明
参数 类型 说明
path string 录制文件路径
json_extension string Json string 无效扩展
cb function 结果回调
user_data void* APP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
返回值说明

无返回值。

回调返回错误码:NIMVChatAudioRecordCode,定义如下:

枚举定义 说明
kNIMVChatAudioRecordClose 0 录制正常结束
kNIMVChatAudioRecordOutDiskSpace 2 录制结束,磁盘空间不足
kNIMVChatAudioRecordCreate 200 文件创建成功
kNIMVChatAudioRecordExsit 400 已经存在
kNIMVChatAudioRecordCreateError 403 文件创建失败
kNIMVChatAudioRecordInvalid 404 通话不存在
示例
结束通话录音

主动结束本地录制音频文件。

API原型
参数说明
参数 类型 说明
json_extension string Json string 无效扩展
cb function 结果回调
user_data void* APP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
返回值说明

无返回值。

回调返回错误码:NIMVChatAudioRecordCode

示例
录制相关回调

当开始混音录制时,等有实际数据开始录制会回调录制开始的通知,等录制结束或录制异常会有录制结束的通知。

API原型
参数说明
参数 类型 说明
channel_id long 频道id
code int 无效错误码
record_info object 录制回调信息
参数 类型 说明
type enum 回调类型kNIMVideoChatSessionTypeAuRecordNotify
channel_id int64 频道id
code int 无效错误码
json_extension string Json string 扩展,返回kNIMVChatAuRecordStart或kNIMVChatAuRecordClose
user_data void* 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理
示例