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

如何在Agora中录制直播流?开发Agora直播应用需实现该功能

Agora直播流录制实现方案

当然可以在Agora直播中实现流录制,主要分为云端录制和本地录制两种方案,以下是具体实现方法:

一、云端录制

适合无需占用客户端资源、需要将录制文件直接存储到云端的场景

  • 核心逻辑:通过Agora提供的REST API发起录制任务,由Agora服务器完成录制并存储文件
  • 实现步骤:
    1. 申请Agora云端录制权限,确保账号已开通该服务
    2. 调用start接口发起录制任务,需传入频道名、录制模式(单流/合流)、存储配置(Agora云或第三方云存储)、鉴权Token等参数
    3. 可自定义录制布局、音视频编码参数、空闲超时时间等配置
    4. 任务启动后,可通过回调接口或主动查询接口获取录制状态;录制完成后,文件会自动保存到指定存储位置
  • 发起合流录制的示例请求(curl):
curl -X POST https://api.agora.io/v1/apps/{你的AppID}/cloud_recording/resourceid/{资源ID}/mode/mix/start \
-H 'Content-Type: application/json' \
-d '{
  "cname": "你的频道名",
  "uid": "录制服务端UID",
  "clientRequest": {
    "token": "你的鉴权Token",
    "recordingConfig": {
      "maxIdleTime": 300,
      "streamTypes": 2
    },
    "storageConfig": {
      "vendor": 1,
      "region": 1,
      "bucket": "你的存储桶名",
      "accessKey": "你的存储访问Key",
      "secretKey": "你的存储密钥"
    }
  }
}'

二、本地录制

适合需要在客户端本地保存录制文件、对录制过程有灵活控制的场景

  • 核心逻辑:集成Agora本地录制扩展模块,在客户端直接捕获并保存直播流
  • 实现步骤(以Android为例,iOS/PC端逻辑类似):
    1. 集成Agora本地录制SDK到项目中
    2. 初始化录制实例并关联已运行的RTC引擎
    3. 配置录制参数(文件保存路径、格式如MP4、音视频质量等)
    4. 直播开始后调用startRecording启动录制,结束时调用stopRecording停止
  • 关键代码示例:
// 初始化本地录制实例
AgoraLocalRecorder recorder = AgoraLocalRecorder.getInstance();
recorder.init(mRtcEngine);

// 配置录制参数
AgoraLocalRecorderConfig config = new AgoraLocalRecorderConfig();
config.setRecordingFileDir(getExternalFilesDir(null).getAbsolutePath());
config.setRecordingFileFormat(AgoraLocalRecorder.FORMAT_MP4);

// 启动录制
int result = recorder.startRecording(config);
if (result == 0) {
    // 录制启动成功
}

// 停止录制
recorder.stopRecording();

注意事项

  • 云端录制需确保存储配置的权限正确,避免文件无法写入
  • 本地录制需要申请客户端存储权限(如Android的WRITE_EXTERNAL_STORAGE)
  • 单流录制会分别保存每个主播的音视频文件,合流录制则生成一个包含所有画面的合成文件

内容的提问来源于stack exchange,提问作者Jay Panchal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 04:52:50