Android端如何将Agora SDK推送的流保存至Agora云端?
Android端Agora推流过程媒体流云端存储实现操作指南
前置校验
- 确认集成的Agora RTC SDK版本不低于3.4.0,低版本不支持直接对接Agora云端存储的录制能力
- 在Agora控制台为当前使用的项目开通云端录制服务,确认项目已完成实名认证,未开通服务的情况下调用录制接口会直接返回权限错误
客户端核心实现步骤
- 初始化RtcEngine实例时,将频道场景设置为直播推流模式:
rtcEngine.setChannelProfile(Constants.CHANNEL_PROFILE_LIVE_BROADCASTING) - 在加入频道前构建云端录制的配置参数,核心配置项包括:
- 选择录制模式:需要单独保存每个推流端的媒体文件选单流录制,需要将频道内所有流混流为单文件保存选合流录制
- 指定存储目标为Agora官方云存储,无需额外配置第三方对象存储的访问密钥
- 匹配推流的编码参数,设置录制的媒体类型(音视频/纯音频)、文件切片时长
- 调用
joinChannel接口时传入构建好的录制配置对象,开始推流的同时Agora服务端会自动启动对应频道的录制流程,录制生成的媒体文件会自动写入Agora云端存储,客户端不需要额外实现上传、切片的逻辑
运行时动态操作
- 推流过程中不需要中断推流,即可通过
startCloudRecording、stopCloudRecording接口动态控制录制的启停,录制操作不会影响观众侧的拉流体验 - 录制完成的媒体文件可在Agora控制台的云端录制记录页面查看详情、获取访问入口,客户端不需要实现额外的文件拉取逻辑
- 若录制文件时长和实际推流时长存在偏差,优先检查配置中设置的文件切片阈值,默认120秒切片的参数可根据需求调整,调整后文件总时长会和实际推流时长保持对齐
注意:推流过程中自定义的视频前处理、音频3A效果,只要编码后的帧正常推送到Agora节点,云端录制保存的内容会和观众实际拉流观看的效果完全一致,不会出现音画不同步、效果丢失的问题
内容的提问来源于stack exchange,提问作者Amit Kundu
相关产品推荐
相关产品推荐

