The Agora Recording SDK records communication and live broadcast contents based on the Agora Native SDK or/and Agora Web SDK.


This component package is compatible with the following SDKs:

SDK Description
The Agora Native SDK The Agora Recording SDK is compatible with the Agora Native SDK v1.7.0 or later. If any user in the channel uses the Agora SDK v1.6, the whole channel will not be able to record.
The Agora Web SDK The Recording SDK is compatible with the Agora Web SDK v1.12.0 or later.

Known Issues and Limitation

  • When you record using an Android client, the image is turned upside down when you switch from a front-facing camera to a rear one.
  • If the user calls leaveChannel in the channel to stop recording, the recording file ends with a period of silence determined by the idleLimitSec field set for the configuration when calling joinChannel.
  • The recorded voice or video files are not encrypted. To be compliant with HIPPA, encrypt the disk with a disk encryption tool, such as cryptsetup.
  • The recording SDK only stores the original video file passed from the client’s side. When creating the MPEG-4 media file, the SDK adjusts the rotation once based on the rotational information found in the uid_xxx.txt file. In other words, no matter how many times the video rotates, the Agora Recording SDK rotates it once only according to the first rotational information in the uid_xxx.txt file. You can change the converting script according to the rotational information in the uid_xxx.txt file to generate the rotated video. Agora plans to add a new feature enabling video rotation by a converting script in version 2.3.

Agora Recording SDK supports both Java and C++ from v2.2.0.


The version 2.2.3 was released on October 18, 2018. See below for issues fixed.

Issues Fixed

  • Coredump loss caused by .backtrace.
  • Fixed system crash caused by Java jni. and optimized stability.
  • Bug of the transcoding script in manully mode.
  • The recording video file was split into two files after a web client joined the channel.
  • Occasional system crash caused by the issue that the sub thread was still active after the main thread was released.


The version 2.2.2 was released on August 1, 2018. See below for new features, improvements, and issues fixed.


  • The naming of the screenshots will be uidYmdHMSms.jpg instead of uidYmdHMS.jpg.
  • The transcoding script supports autorotation.
  • The structure of the Java folder is modified.

Issues Fixed

  • webm recording time abnormality.
  • Memory leak.
  • Multi-party intercommunication issue.
  • H.264 parser issue.
  • Audio and video out of sync.


The version 2.2.1 was released on June 5, 2018. See below for new features, improvements, and issues fixed.


  • Improved the performance of the communication mode. The number of recording channels that a system supports with the same performance has increased by 150%.
  • Improved the efficiency to find the port.
  • The time to find the port is no longer part of the idle time.

Issues Fixed

Port conflicts when the search for the port takes too long and exceeds the idle time. As a result, the port is not connected.


The version 2.2.0 was released on May 4, 2018. See below for issues fixed.

New Features

The package you downloaded supports both Java and C++.

Issues Fixed

  • Fixed the issue of oversized logs.
  • Fixed abnormal issues that occurred when recording fast-forward videos.
  • Fixed intermittent failures.
  • Performance improvements.
  • Fixed some crash issues.


The version 2.1.0 was released on March 7, 2018. See below for new features, improvements and issues fixed.

New Features

Function Description
Recording Mode Supported selecting auto or manual mode when joining a channel to flexibly control the recording.
Control Recording Added interfaces to unbind the operation of joining a channel and recording. If the auto recording mode is used, the recording starts when a user joins the channel. If the manual recording mode is used, you can control when to start and stop the recording.
Mix Raw Audio Supported the function of mixing raw audio data.
Java Recording API Supported Java APIs for recording.


Improvement Description
Transcoding Script Supported the setting of the transcoding frame rate and resolution, either in picture-in-picture or single-stream mode.

Issues Fixed

  • Occasional recording file transcoding failures.
  • Occasionally the video screen turns upside down.
  • Occasional abnormal audio during recording.


The version 2.0 was released on November 21, 2017.

For 2.0 Beta documentation, see 2.0 Document Center

  • Optimized the raw data to support various formats:
    • Modified the decodeAudio and decodeVideo parameters, and added the VideoJpgFrame struct. For details, see Recording API Beta
    • Modified the getAudioFrame and getVideoFrame parameters. For details, see Recording Quickstart.
  • Added the captureInterval parameter to set the time interval of the captured screenshots. For details, see Recording API Beta and Recording Quickstart.
  • Added the streamType parameter to support different video stream types. For details, see Recording API Beta and Recording Quickstart.
  • Added the isVideoOnly parameter. For details, see Recording API Beta and Recording Quickstart.
  • The transcoding scripts, once used, will generate a convert.log file under the same path as the voice/video file. For details, see How to Record.
  • Added the video rotating information in UID_HHMMSSMS.txt. For details, see How to Record.


The version 1.3 was released on October 20, 2017. See below for new features.

New Features:

  • Added the mixing of the audio and video recording functions by adding the mixedVideoAudio and cfgFilePath parameters in the joinChannel method.
  • Added the function of merging the audio and video file of the same uid as one, see Play the Recording Files.
  • Added the getProperties method to get the recording path immediately after recording is started before joining any channel.
  • Modified the onError and onLeaveChannel callback functions.


The version 1.2 was released on August 21, 2017. See below for new features.

New Features:

  • Supported the function of getting the audio and video raw data.
  • Supported the function of detecting sexually explicit content.
  • Provided a log file, recordingsys.log, to check for failures.
  • Supported the recording channel timestamp, that is, the first user who starts recording in the channel.


The version 1.1 was released on July 25, 2017. See below for new features and issues fixed.

New Features:

  • Added recording at the web client side.
  • Added the real-time video mixing function.
  • Added a set of callback functions.
  • Modified the file format after transcoding.
  • Enabled the configure UDP port function.

Issues Fixed:

  • Wrong timestamps.
  • Transcoding failure.
  • Unable to playback VLC files.


The version 1.0.1 was released on June 27, 2017. See below for issues fixed.

Fixed the crash when you set the channel profile of the recording as live broadcast.


The version 1.0.0 was released on June 15, 2017.

This is the first release of the Recording SDK with the following functions:

  • Communication and live broadcast scenarios.
  • Recording the voice and video of all users in a channel.
  • Recording the voice and video of all users in multiple channels simultaneously.
  • Recording the voice of all users in a channel or in multiple channels simultaneously.
  • Recording an encrypted channel if the application has integrated the Agora built-in encryption.