UOS Hello 云录制
UOS Hello 云录制
前提条件
在应用 云录制 的相关功能前,请确保已在你的项目中实现基本的实时音视频功能。详见 接入示例 。
相关概念
云录制
云端录制是 Hello 服务中的功能之一,Hello为音视频通话和直播研发的录制组件,Hello SDK 中提供开发者实现录制功能,并将录制文件存至云存储。云端录制主要用于游戏内多人语音录制后审核,以及精彩游戏片段录制回放。
录制模式
Hello服务目前支持的是单流录制。完成录制后,录制的内容会以 TS 文件形式上传到云存储中,同时生成 M3U8 文件用于索引相应的 TS 文件。
单流录制
单流录制指录制服务分开录制频道内每个 UID 的音频流和视频流。录制结束后,录制服务会针对每个 UID 生成其对应的音频文件和视频文件。
举例来说明,如果频道内共有 3 个 UID,每个 UID 都发送音频和视频,则在单流录制模式下,会生成 3 个音频文件和 3 个视频文件。
转码
转码指将音视频数据解码并重新编码,从而实现数据形式、属性等的转换过程。常见的音视频数据转码包含如下属性:
- 编码格式,如 H.264、AAC
- 编码属性,如采样率、码率、I 帧间隔
- 媒体封装格式,如 MP4、TS 等
转码在云端录制服务下应用广泛,常见的应用场景有:
- 单流录制下,通过转码对生成的录制文件进一步处理,比如将每个 UID 的音频和视频文件合并为一个音视频文件,或将切片文件合并为 MP4 文件或其他文件格式。
- 合流和页面录制下,通过对音频和视频文件进行转码,生成你想要的文件格式。
云端录制通过转码脚本来实现音视频数据转换的功能。你可以参考 声网转换录制文件格式文档 来进一步了解如何在单流及合流录制模式下使用转码脚本。
延时转码
在纯音频录制下,你可以开启延时转码模式。开启后,录制服务会在录制结束后 24 小时内(特殊情况下会达到 48 小时以上)将指定频道内所有 UID 的录制文件合并且转码生成一个 MP3/M4A/AAC 文件,并将录制文件上传至你指定的第三方云存储。
切片
切片指在录制过程中将音视频数据按照一定的规则进行切割,生成多个录制文件的行为。切片后会生成多个切片文件(如 TS 或 WebM 文件)以及用于存储切片文件索引的 M3U8 文件。
云录制示例
在用户加入频道后,即可调用 HelloSDK 提供的方法开启云录制。
//加入频道
RtcEngine.JoinChannelWithUserAccount(TokenInfo.AccessToken, TokenInfo.ChannelName, TokenInfo.UserId);
//开启录制
var recording = await HelloSDK.Instance.StartRecordingAsync(TokenInfo.ChannelName);
Debug.Log("recordingId : "+recording);在频道里最后一个人结束发言30s后,HelloSDK 会自动停止云录制。