云端录制
更新时间: 2024/08/20 15:20:22
为满足用户在音视频通话过程录制和备案等需求,音视频通话 2.0 提供云端录制功能,支持一对一或多人的音视频通话过程录制。通过云端录制功能,您可以将语音聊天、视频聊天的内容录制并储存下来,以便后续提供给更多人观看回放或存档。
云端录制功能提供服务端方案与客户端方案,不同方案的区别请参考云端录制概述。本文档为您演示本平台实现云端录制的基本步骤。
若您使用的是网易云信的此套云端录制方案,请注意旧版云端录制 API 不再更新迭代,我们推荐您尽快切换至新版云端录制 RESTful API,无需客户端作任何改动,且能体验更为灵活的云端录制配置,详细文档请参考实现云端录制。
注意事项
-
开始集成云端录制功能之前,请先参考云端录制概述,选择实现方案。
网易云信建议您使用新版服务端配置方案,以体验更为灵活的配置策略。
-
客户端配置与服务端配置相比,服务端配置的优先级更高。如果客户端 SDK API 录制配置与服务端 API 配置冲突时,例如某个客户端参与的录制类型设置不一致,则以服务端 API 的配置为准。
-
云端录制客户端方案与服务端方案在录制模式上的差异在于,客户端设置的录制模式仅对本端生效,服务端设置对全局生效。
录制模式说明
云端录制客户端录制方案支持以下三种录制模式:
- 合流录制模式。房间内参与合流录制的成员,其音视频流混合录制为一个媒体文件。
- 单流录制模式。房间内参与单流录制的成员,分开录制其音视频流,每位成员均有其对应的媒体文件。
- 合流+单流录制。同时录制合流内容和单流内容。录制结束后,产生以下媒体文件:
- 房间内参与合流录制成员的音视频混合文件。
- 房间内参与单流录制成员的单人音视频文件。
例如,A、B、C 三人进行音视频通话,A 端设置参与合流+单流录制,B 端设置只参与合流录制,C 端设置只参与单流录制,录制结束后会产生以下文件包:
- 文件包 1:包含 A 和 B 的音视频数据的录制文件。
- 文件包 2:只包含 A 的音视频数据的录制文件。
- 文件包 3:只包含 C 的音视频数据的录制文件。
前提条件
- 使用云端录制功能之前,请先联系网易云信商务经理开通云端录制功能和网易云信点播服务。该功能涉及资源计费,请确认您已了解相关的计费规则。
- 建议开启消息抄送服务,接收云端录制事件的相关回调。详细信息请参考消息抄送。
实现方法
在客户端配置方案中,客户端加入房间前指定本端参与的录制模式与录制类型,加入房间后自动开始录制。录制布局、画布等设置需要在控制台中进行全局配置。
实现步骤
-
在控制台中设置设置录制布局。
各种录制布局的实际表现与区别请参考录制布局。
-
在初始化之后,加入房间前,通过
NERtc.getInstance().setParameters(mRtcParameters);
设置录制参数。客户端的录制参数用于指定本端参与的录制模式。可设置的录制参数如下:
参数 说明 NERtcParameters.KEY_SERVER_RECORD_SPEAKER 本端是否为主讲人。主讲人设置会影响云端录制画面布局。 NERtcParameters.KEY_SERVER_RECORD_AUDIO
是否开启云端音频录制。默认为关闭状态。
- true:开启
- false:关闭
NERtcParameters.KEY_SERVER_RECORD_VIDEO
是否开启云端视频录制。默认为关闭状态。
- true:开启
- false:关闭
NERtcParameters.KEY_SERVER_RECORD_MODE
云端录制模式。
- ServerRecordMode::MIX_AND_SINGLE:合流+单流录制模式。
- ServerRecordMode::MIX:合流录制模式。
- ServerRecordMode::SINGLE:单流录制模式。
-
调用
joinChannel
接口加入房间。 -
所有录制的参与者均关闭音频和视频开关或退出房间时自动关闭录制。
示例代码
录制任务配置相关示例代码如下。
javaNERtcParameters parameters = new NERtcParameters();
parameters.set(NERtcParameters.KEY_SERVER_RECORD_AUDIO, true);
parameters.set(NERtcParameters.KEY_SERVER_RECORD_VIDEO, true);
parameters.set(NERtcParameters.KEY_SERVER_RECORD_MODE, MIX_AND_SINGLE);
parameters.set(NERtcParameters.KEY_SERVER_RECORD_SPEAKER, false);
NERtc.getInstance().setParameters(parameters);
...
NERtcEx.getInstance().init(getApplicationContext(),Config.APP_KEY,callback,null);
后续操作
查询或播放录制文件:
- 调用查询录制文件接口获取单个视频文件信息,包括:视频 ID、视频名称、各个视频格式的播放地址、各个视频格式的下载地址、各个视频格式的视频大小、视频截图地址、视频所属分类 ID 和名称、视频播放时长和视频转码完成时间。
- 使用网易云信提供的播放器 SDK 实现录制回放。