实现本地服务端录制

更新时间: 2021/08/31 04:08:28

本文档为您介绍通过调用 API 实现音视频通话录制的基本操作步骤。您也可以在实现基本业务逻辑的前提下,使用 NERecord SDK 提供的多种进阶核心功能。

示例项目

本地服务端录制典型场景的完整示例代码请参考 GitHub。您可以参考源代码在本地项目中实现本地服务端录制。

前提条件

请确认您已参考准备工作完成部署准备,例如创建应用、开通服务、获取 Token、部署 SDK 等。

安装环境要求

请确认您的本地环境符合以下要求:

限制 说明
环境要求 支持部署在CentOS 7.3+ x64 和 Ubuntu 16.04+ x64 的操作系统中。
编译器 GCC 或 G++ 编译器 5.4 及后续版本。
服务器 支持物理服务器或虚拟服务器。
网络 已接入公网,且被分配了公网 IP 地址。请根据需要同时录制的数量和房间内情况确定所需带宽。

操作步骤

1. 创建录制引擎实例

调用 createNERecordEngine() 创建一个录制引擎实例。

示例代码

cppnerecord::IRecordEngine *engine = createNERecordEngine();

2. 初始化引擎实例

开始录制前,需要先调用 initialize 初始化引擎实例。

示例代码

cppnerecord::NERecordEngineContext ctontext = {<prepare>};
engine->initialize(context); 

3. 加入房间并开始录制

创建并初始化之后,需要调用 joinChannel 加入房间开始录制。默认情况下,SDK 加入房间后,监测到房间内有用户开启音视频即开始录制。

注意:本地服务端录制 SDK 加入房间之前,房间中应至少有一位成员。

示例代码

cppengine->joinChannel(<token>, <channel>, <uid>);

参数说明

参数 说明
token 安全认证签名 Token。获取 Record Token 方式请查看getRecordSdkUserChecksum
注意:
  • 本地服务端录制 SDK 不支持在调试模式下使用。
  • 若房间中没有其他成员将无法获取 Record Token。
  • 本地服务端录制和音视频通话 2.0 通过不同的接口获取 Token,URL 及请求参数均不相同。录制 SDK 加入房间时请确保传参中的 Token 是通过 getRecordSdkUserChecksum 获取的 Record Token。
  • channel 房间名称。加入房间之前,房间中应至少有一位成员。
    uid 用户的唯一标识 id,房间内每个用户的 uid 必须是唯一的。

    注意

    4. 获取录制文件路径

    通过 getProperties() 接口可获取录制文件保存路径。/properties/storage_dir 即日志文件所在目录。

    调用 getProperties(),返回值的storage_dir字段即录制文件保存路径。

    示例代码

    cppconst nerecord::NERtcRecordingEngineProperties *properties = engine->getProperties();
    

    5. 结束录制

    录制完成,调用 leaveChannel() 离开房间,离开房间时会自动停止所有录制。

    录制结束后如果需要重新开始新的录制,需要重新创建实例。

    注意

    录制开始后,必须通过调用 subscribeRemoteAudioStream(, false)、 subscribeRemoteVideoStream(, false)、 stopService()leaveChannel() 几种方式结束录制,否则可能会导致录制文件不完整。

    示例代码

    cppengine->leaveChannel();
    

    6. 释放资源

    录制完成离开房间后,需要调用 release() 来释放资源,资源释放后将无法再次使用和回调引擎内任何资源。如果需要再次录制,必须重新创建实例。

    注意:

    • 离开房间后才能调用 release() 接口。
    • 请勿在任何回调线程中调用 release() 接口。

    示例代码

    cppengine->release();
    
    此文档是否对你有帮助?
    有帮助
    去反馈
    • 示例项目
    • 前提条件
    • 安装环境要求
    • 操作步骤
    • 1. 创建录制引擎实例
    • 2. 初始化引擎实例
    • 3. 加入房间并开始录制
    • 4. 获取录制文件路径
    • 5. 结束录制
    • 6. 释放资源