You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Agora SDK在Flutter中实现直播流录制

Flutter接入Agora直播新增流录制能力实现方案

可行性结论

完全可以实现,无需推翻现有已稳定运行的直播逻辑,Agora提供两类成熟的录制方案覆盖不同场景需求。


方案1:云端录制(优先推荐,适配90%以上直播场景)

这个方案的录制进程完全运行在Agora云端服务器,不占用主播、观众端的设备算力,不会影响现有直播的推/拉流稳定性,支持单流单独录制、多流合布局录制,录制文件可直接归档到你自己的存储服务,适合直播回放生成、内容合规存证、多视角素材留存等通用需求。
具体实现步骤:

  • 前置配置:登录Agora控制台为当前项目开通云端录制服务权限,提前配置好录制文件的存储参数,准备好存储服务的bucket、访问密钥、对应区域配置即可
  • 服务端开发(核心逻辑必须放服务端,避免敏感信息泄露):
    • 主播开播成功后,由你的业务服务端调用Agora云端录制启动接口,传入当前直播的频道ID、主播UID、录制模式(合流/单流)、录制文件存储路径等参数,拿到全局唯一的录制ID
    • 录制过程中如果需要调整录制布局、增减订阅的音视频流,服务端直接调用对应更新接口即可,端侧不需要做任何适配
    • 主播关播、或者直播异常中断时,服务端调用停止录制接口,Agora会自动将生成的录制文件上传到你预先配置的存储地址,同时回调录制文件的访问信息给你的业务服务端
  • Flutter端适配:现有直播代码几乎不需要改动,只需要在主播开播成功、主动关播两个时机,给你的自有业务服务端发对应HTTP请求,触发服务端的录制启动/停止逻辑即可,不需要额外集成新的SDK。

注意:绝对不要把Agora的App证书、存储服务密钥这类敏感信息写在Flutter端代码里,所有录制相关的鉴权、接口调用逻辑全部放在自有服务端,避免密钥泄露被盗刷流量。


方案2:端侧本地录制(仅适合主播本地留存素材场景)

这个方案直接通过端侧集成的Agora Flutter SDK调用本地录制能力,将主播推出去的音视频流直接存储在主播本地设备,不需要走云端录制链路,适合主播需要本地保存直播原片、后续自行剪辑的场景。
具体实现步骤:

  • 版本校验:确认你当前项目接入的Agora Flutter SDK版本为4.0及以上的稳定版,版本过低先升级,避免录制接口不兼容
  • 接口调用逻辑:
    • 主播端完成推流配置、成功加入直播频道后,调用SDK提供的startRecording方法,传入本地文件存储路径、录制分辨率、码率、是否采集麦克风音频、是否合并音视频轨等配置参数即可启动录制
    • 录制过程中可以通过SDK提供的回调监听实时获取录制状态,包括已录制时长、生成文件大小、录制异常报错等
    • 主播结束直播前,调用stopRecording方法终止录制,SDK会自动将完整的录制文件写入之前传入的本地路径,后续可根据业务需求做本地预览、手动上传等操作
  • 权限适配:Android端需要提前动态申请存储写入权限,iOS端需要在配置文件中添加本地文件读写、相册访问的权限描述,否则会出现录制启动失败、文件无法保存的问题。

选型建议

  • 只要是平台侧需要留存直播文件、生成回放的需求,直接选云端录制,端侧改动量极小,稳定性远高于端侧录制,也不会出现因为主播设备性能不足、中途退后台导致录制文件损坏的问题
  • 只有当主播需要离线留存本地素材、不需要平台侧存储文件时,再选择端侧本地录制方案

内容的提问来源于stack exchange,提问作者Abdullah Bilal Khanzada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 12:01:04