本页介绍如何设置环境以及集成 Agora 录制 SDK。

你需要将 Agora 录制 SDK 集成在你的 Linux 服务器上而不是你的 App 上。

如果你不想自行部署 Linux 服务器,可尝试 Agora 云端录制

../_images/recording_linux_cn.png

录制某频道内的音视频信息相当于将一个特殊的观众加入该频道。该观众获取频道内的音视频信息,将获取到的信息转码并储存在 Linux 服务器上。 因此,你必须:

  • 将录制 SDK 集成在你的 Linux 服务器上;
  • 在录制 SDK 中和进行音视频通话的 Agora SDK 使用同一个 App ID 。

前提条件

下表列出了安装 Agora 录制 SDK 的基本要求:

硬件和网络 要求
服务器

物理或虚拟

  • Ubuntu 14.04+ x64
  • CentOS 6.5+(推荐 7.0)x64
网络 这台 Linux 服务器要接入公网,有公网 IP
带宽 根据需要同时录制的频道数量和频道内情况确定所需带宽。以下数据可供参考:录制一个分辨率为 640*480 的画面需要的带宽约为 500kbps;录制一个有两个人的频道则需 1Mbps;同时录制 100 个这样的频道,需要带宽为 100Mbps。关于分辨率和带宽的关系,详见 录制 API
域名解析 服务器允许访问 qos.agoralab.co,否则 SDK 无法上报必要的统计数据。

参考配置

我们测试了以下云主机配置下的录制并发性能:

  • AWS:Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00 GHz
  • 16 虚拟核 CPU,32 GB 内存
  • 磁盘 I/O: 412 MB/s

测试条件:

  • 每个频道内有两个人,视频分辨率设为 320 × 240 ,帧率设为 15 fps 。
  • 对于合流录制文件,视频分辨率设为 640 × 480,视频帧率设为 15 fps,视频码率设为 500 Kbps ;音频码率设为 48 Kbps。

不同频道模式和录制模式下,录制并发性能如下:

频道模式 录制模式 测试结果
直播模式 视频单流录制 215 个频道并发时,CPU 占用为 75% 左右
建议并发 200 个频道
视频合流录制 70 个频道并发时,CPU 占用 75% 左右
建议并发 60 个频道
纯音频合流录制 300 个频道并发时,CPU 占用为 75% 左右
通信模式 视频单流录制 210 个频道并发时,CPU 占用为 75% 左右
建议并发 200 个频道
视频合流录制 60 个频道并发时,CPU 占用为 75% 左右

你可参考上述云主机配置和对应的录制性能,根据自己的录制需要选择和配置云主机,详见使用云容器部署录制 SDK

准备环境

在你的 Linux 服务器上进行以下操作:

  1. 下载最新的 Agora 录制 SDK 软件包。软件包内容如下:

    文件夹 描述
    bin AgoraCoreService 所在的目录
    include
    • base:libs 所依赖的一些基础的头文件
    • IAgoraLinuxSdkCommon.h:公共的基础结构体和枚举值
    • IAgoraRecordingEngine.h:录制引擎的接口类和配置信息
    libs 录制的依赖库
    samples

    代码示例

    • agorasdk:对录制 C++ 接口的实现以及回调的处理示例
    • base:公共的示例代码
    • cpp:C++ 示例代码
      • release/bin/recorder:可运行的父程序
    • java:java 示例代码
      • native:native code
      • native/jni:jni 代理
      • src: java 层源代码
      • src/io/agora/recording/RecordingEventHandler.java: 回调接口类
      • src/io/agora/recording/RecordingSDK.java: 录制接口类
    tools 转码工具
  2. 为你的项目准备所需库:

    • include 文件夹添加到你的项目里。
    • 将包含 lib 库的目录链接到 libs 文件夹下的 libRecordingEngine.a 库文件。
  3. 安装编译器: gcc 4.4+ 。

  4. 打开 TCP 目标端口:80、1080、5888、8000、9700、25000、30000。

  5. 打开 UDP 目标端口:1080、4000-4030、7000、8000、8913、9700、25000。

  6. 打开所有的录制进程所使用的单向下行端口。单向下行端口为在 RecordingConfig 中指定的 lowUdpPorthighUdpPort 范围之间的端口。

    • 录制一个频道的内容需要开启一个对应的录制进程;单个录制进程需要使用 4 个单向下行端口。进程(包括各个录制进程和系统进程)之间不得有端口冲突。
    • Agora 建议指定录制进程使用端口的范围。你可以为多个录制进程统一配置较大的端口范围(Agora 建议 40000 ~ 41000 或更大)。此时,录制 SDK 会在指定范围内为每个录制进程分配端口,并避免端口的冲突。要设置端口范围,你需要配置参数 lowUdpPorthighUdpPort
    • 如果不指定参数 lowUdpPorthighUdpPort ,录制进程所使用的端口为随机端口,会有端口冲突的风险。
    • 使用iptables -L命令查看 UDP 端口。
  7. 将域名 .agora.io 和 .agoralab.co 设为白名单。

  8. 为调试方便,Agora 建议你打开系统的 core dump 功能以记录可能产生的程序崩溃信息。

你已经集成了录制 SDK,可以选择以下任意一种方式开始录制:

这两种方式可以实现相同的功能,根据你的需要选择一种即可。