【音视频服务】如何配置云端录制服务?

开通服务

云端录制为付费增值服务。

  • 在开发环境下,可免费体验云端录制服务。可登录开发者后台,在 云端录制页面开通服务,查看免费体验额度。
  • 在生产环境下,需要预存费用才能开通服务。

在配置云端录制服务或调用调用云端录制 API 之前,请确认已在开发者后台云端录制页面开通服务,并已完成相关配置。

配置录制参数

开通服务时,需要配置录制参数云存储参数。下图中标 * 的为必填项目。

录制参数 说明
用户所在区域 为了录制效果较为流畅,您需要标识您最终用户的所在地域。
录制触发方式 自动录制或手动录制。
  • 自动:客户端发起通话时,云端录制服务会自动开始录制。直至通话结束时,录制自动停止。
  • 手动:由 App 服务端调用云端录制 API 接口触发开始录制和结束录制。请注意,使用 API 控制录制服务,录制触发方式需要配置为**手动**。
录制模式 录制模式可控制以下行为:
  • 是否需要对各用户分别进行录制
  • 是否音频和视频均需要录制
  • 是否需要混合音视频流
    如果已开通并使用[音视频直播]服务,可以选择直接录制 mcu 合流。注意:不同录制模式最终生成文件的方式与数量有差异,详见下方录制模式详解
是否录制仅有一人的会话 一般适用于监控、单主播、或通话未接通时仍发流等场景。
分辨率 录制视频的输出分辨率。
音频格式 音频封装格式,支持 `aac`、`mp3`。

注意:部分视频/音频格式组合可能与播放器软件存在兼容性问题。如果出现播放问题(例如,视频无声),建议更换当前平台使用的播放器进行排查,再根据排查结果确定合适的音频/视频格式组合。
视频格式 视频封装格式,支持 `mkv`、`mp4`、`flv`、`hls`。

注意:部分视频/音频格式组合可能与播放器软件存在兼容性问题。如果出现播放问题(例如,视频无声),建议更换当前平台使用的播放器进行排查,再根据排查结果确定合适的音频/视频格式组合。
切片时长 为了防止时间太长导致文件过大,录制会定期对文件进行切片。详见下方封装文件大小参考值切片时间说明
合流布局方式 在录制模式为 Mix 模式时,控制多视频画面的排版方式,可选择悬浮布局自适应布局。详见了解合流布局

注意:该配置仅针对以下录制模式生效:
  • Mix 模式 -- 全录
  • Mix 模式 -- 仅录视频
  • 单人 Mix 模式 --视频
回调地址 填入接收云端录制回调的地址。服务端会通过回调通知您的应用服务录制开始、录制结束等状态以及对应的详细信息。详见[状态回调]。

设置云存储参数

下图中标 * 的为必填项目。

image

云存储参数 说明
云存储厂商 请选择您使用的第三方云存储厂商,如果您的云存储厂商不在列表中,可以提交工单联系我们。
文件存储地址 请填写第三方存储厂商的上传 URL。
云存储账号 请填写第三方存储厂商的 Access Key。
云存储密码 请填写第三方存储厂商的 Access Secret。
存储桶名称 请填写第三方存储厂商的用于存放录制文件的 Bucket。
自定义存储目录 开启或关闭,开启后可配置指定在第三方存储厂商的存储路径。
指定存储目录 格式为/path/,必须以“/”结束,如存储路径中需要包含动态参数,可使用{X}进行设定。动态参数支持:{yyyyMM}:日期,年月;{roomId}:房间ID;{sessionId}:会话ID。示例:如需要按时间和房间id区分存储路径,指定存储录制配置为:/{yyyyMM}/{roomId}/

常见云存储的账号参数配置,可以参见下方知识库文档:

云存储账号、云存储密码、存储桶名称等在不同的第三方存储厂家可能有不同的名称,如: appkey, secret, bucket 等。具体您可以询问您使用的第三方厂商。

录制模式详解

配置录制参数时,可以选择录制模式。

Single 模式 – 全录

分别录制房间内每个用户的每个音频流、视频流。以两人会议为例:

  • 如果两个用户均为音视频,则生成 4 个文件(2 个纯音频 + 2 个纯视频)。
  • 如果两个用户均为音频,则生成 2 个纯音频文件。
  • 如果一个用户为音视频,另一个用户为纯音频,则生成 3 个文件(2 个纯音频 + 1 个纯视频)。

Single 模式 – 仅录视频

分别录制房间内每个用户的每个视频流,音频不进行录制。

以两人会议为例,两个用户均为音视频,会生成 2 个纯视频文件。

Single 模式 – 仅录音频

分别录制房间内每个用户的每个音频流,视频不进行录制。

以两人会议为例如果两个用户均为音视频,会生成 2 个纯音频文件。

Mix 模式 – 全录

将房间内所有用户的音视频合流,合并录制到 1 个视频文件。

以两人会议为例:

  • 如果两个用户均为音视频,会生成 1 个带音频和视频的视频文件,画面为两人合流后的图像,声音为两人混流后的音频。
  • 如果两个用户均为音频,会录制为 1 个仅含音频的视频文件,声音为两人混流后的音频。

Mix 模式 – 仅录视频

将房间内所有用户的视频合流,合并录制到 1 个视频文件,音频不进行录制。

以两人会议为例,如果两个用户均为音视频,会生成 1 个纯视频文件,画面为两人合流后的图像,不包含音频。

Mix 模式 – 仅录音频

将房间内所有用户的音频合流,合并录制到 1 个音频文件,视频不进行录制。

以两人会议为例,两个用户均为音视频,会生成 1 个纯音频文件,声音为两人混流后的音频,不包含视频。

单人 Mix 模式 – 视频

分别录制房间内每个用户的音视频流,以用户为单位合并录制到 1 个视频文件。

以两人会议为例:

  • 如果两个用户均为音视频,则生成 2 个文件,每个文件分别包含一个用户的音频和视频。
  • 如果两个用户均为音频,则生成 2 个仅含音频的视频文件,每个文件分别包含一个用户的音频。

MCU 合流模式–全录

直播场景下,以观众视角录制房间内的音视频合流,录制到 1 个音视频文件。

以音视频直播为例:

  • 单主播进行视频直播,或者和其他主播进行视频连麦 PK,或者多主播进行音视频直播时,以观众视角进行音视频录制,录制到 1 个音视频文件。

MCU 合流模式–仅录视频

直播场景下,以观众视角录制房间内的视频合流,录制到 1 个视频文件。

以音视频直播为例:

  • 单主播进行视频直播,或者和其他主播进行视频连麦 PK,或者多主播进行音视频直播时,以观众视角进行视频录制,录制到 1 个视频文件。

MCU 合流模式–仅录音频

直播场景下,以观众视角录制房间内的音频合流,录制到 1 个音频文件。

以音频直播为例:

  • 单主播进行音频直播,或者和其他主播进行音频连麦 PK,或者多主播进行音频直播时,以观众视角进行音频录制,录制到 1 个音频文件。

开通音视频直播服务后才能使用上述 MCU 合流模式。

封装文件大小参考值

文件类型 可播放10分钟的文件大小估值(MB)
音频 5
640x480 30-40
1280x720 70-80

以上文件大小为普通场景下的测试数据,仅供参考,实际数据与您设置的码率有关。

切片时长说明

为了防止通话时间过长,录制的文件过大不便于传输和使用,用户可以设置切片间隔时间。

当录制任务的时长大于切片时长时,会将缓存的所有音视频数据封装成一个完整的文件并上传,同时不中断录制直到下一个切片时间或录制结束。录制任务结束时小于切片时长时,会按实际时间进行封装所有音视频数据并上传。

您可以在开发者后台设置切片时长,默认值为 60分钟,可选项如下:

  • 30 分钟
  • 60 分钟
  • 90 分钟
  • 120 分钟

切片文件命名规则

以下命名规则仅供参考,不建议您解析具体字段。

录制模式 命名规则说明 示例
mix 模式 SessionId_RoomId_时间戳.文件格式。 例:1K6-Q3uj6w7cfbGSq0ahA9_1775_1577616009233.mkv
single 模式 SessionId_RoomId_UserId_StreamTag_时间戳.文件格式。 例:1K6-Q3uj6w7cfbGSq0ahA9_1775_123456_RongCloudRTC_1577616009233.mkv
单人 mix 音视频模式 SessionId_RoomId_UserId_时间戳.文件格式。 例:1K6-Q3uj6w7cfbGSq0ahA9_1775_123456_1577616009233.mkv

云端录制在开始录制、文件切片、录制结束、上传的时候均提供 HTTP 录制状态回调,您可以拿到录制元信息和录制文件名、录制文件最终 URL 的对应关系。

字段说明

字段 说明
SessionId 当前通话的会话 ID。如果使用 RTCLib,可以在创建房间后从房间对象上获取。如果使用 CallLib,可以在建立通话后从当前 call sesion 上获取。
RoomId 通话所在的房间 ID。如您使用 RTCLib,RoomId 为加入房间方法的入参;如您使用 CallLib,可以通过 getCallId 接口获取 RoomId。
UserId 通话的用户 ID。
StreamTag 用户发布自定义视频或屏幕共享时,客户端给流设置的 Tag 字段。
时间戳 Unix 时间戳,单位为毫秒。