Agora Cloud Recording is an add-on service to record and save voice calls, video calls, and interactive streaming on your cloud storage. Compared with Agora On-premise Recording, Agora Cloud Recording is more efficient and convenient as it does not require deploying Linux servers.
Agora Cloud Recording is compatible with the following SDKs:
This release adds support for Amazon S3 in some regions. See Cloud storage configuration.
This release adds the following new feature and API changes:
Mobile web page mode for web page recording
This release adds mobile web page mode for web page recording. The API changes are as follows:
mobile
field in extensionServiceConfig
. After setting mobile
to true
, the recording service uses the mobile web page mode to record the current web page.videoWidth
and videoHeight
fields in extensionServiceConfig
is changed to [240, 1920].Transcoder script for high availability mechanism
In composite recording mode, Agora provides a Transcoder script for merging the old M3U8 file with the new M3U8 file generated after the service enables the high availability mechanism into an MP4 file. For details, see Manage Recorded Files.
Individual Audio Non-transcoding Recording
In order to meet the diverse recording needs of users, this release adds the streamMode
parameter in the start
method to support Individual Audio Non-transcoding Recording.
Postpone Audio Mixing
For voice chat scenarios, this release adds the appsCollection
and transcodeOptions
parameters in the start
method to support Postpone Audio Mixing. If you enable this function, the recording service merges and transcodes the recorded files of all user IDs in the specified channel within 24 hours after the recording ends to generate an MP3/M4A/AAC file, and then uploads the recording file to your specified third-party cloud storage.
A Combined audio and video file after individual recording
When calling start
, set the streamMode
field of the recordingConfig
parameter to standard
, you can get a M3U8 audio index file, a M3U8 video index file and a combined M3U8 audio and video index file. If VP8 encoding is used on the web side, a combined MPD audio and video index file are generated.
You can play the combined audio and video index file directly without using script. Agora recommends that you use this mode.
Support for the third-party cloud storage service encrypting and labeling recording files
This release adds the extensionParams
field to support the third-party cloud storage service to encrypt and tag uploaded recording files. This feature is applicable to Amazon S3 and Alibaba Cloud OSS.
This release adds support for Alibaba Cloud (vendor
is 2
) in the following regions:
19
:AP_Southeast_6 20
:CN_Heyuan 21
:CN_Guangzhou 22
:CN_ChengduFor details, see Alibaba Cloud Documentation.
This release fixed the following issue:
When a composite recording started, the user to be recorded did not send streams. When the user sent streams, the user could not display the customized background image or background color after they stopped sending streams or left the channel.
Support for AES-GCM2 encryption
For scenarios requiring high security, to guarantee the confidentiality, integrity, and authenticity of the data and to improve the computational efficiency of the data encryption, this release adds the following options in recordingConfig
:
AES_128_GCM2
and AES_256_GCM2
encryption modes in decryptionMode
of recordingConfig
. The new GCM encryption modes use a more secure KDF (Key Derivation Function) and support setting the key and salt.salt
parameter in recordingConfig
to add the salt for the AES_128_GCM2
and AES_256_GCM2
encryption modes.Push media stream to the CDN during a web page recording
Adds support for converting the content and audio of a web page into a media stream and pushing it to the CDN during the web page recording. See the start
, update
and query
methods of the Agora Cloud Recording RESTful API for details.
Third-party cloud storage
Adds support for Google Cloud, Huawei Cloud and Baidu AI Cloud as third-party storage platforms.
Capture screenshots
This release increases the range of the captureInterval of snapshotConfig (in seconds) to [1,3600] from [5,3600] when using the Cloud Recording RESTful API to take screenshots of a video stream.
Output video resolution
This release increases the upper limit of the output video resolution generated by the web page recording from 1280 x 720 to 1920 x 1080. That is, the range of the videoWidth
and videoHeight
parameters of the web page recording in extensionServiceConfig
is changed to [480, 1920].
The estimated maximum number of subscribed users
To support a larger estimated maximum number of subscribed users, this release adds the following enumeration values of subscribeUidGroup
in recordingConfig
:
4
: 17 to 32 user IDs5
: 32 to 49 user IDsThe new server version requirements for transcoding recorded files are as follows:
Web page load timeout detection
In order to ensure the validity and completeness of page recording, this version supports page load timeout detection function. See Web Page Load Timeout Detection.
Pause the page recording
This release adds the onhold
parameter to the start
and update
methods, which is used to pause the recording when the web page recording starts or is in progress.
Capture screenshots and recording in a recording process
This release adds support for recording and taking screenshots in a recording process. Only the recording fee is charged. See Capture Screenshots.
The web_recorder_stopped
callback adds error codes and error messages to indicate the reason for the abnormal stop of the web page recording. You can take corresponding measures based on the information.update
method adds the webRecordingConfig
parameter, which is used to update related parameters during a web page recording.This release includes the following new feature and API changes:
Screenshot event notification
This release adds the recorder_snapshot_file
callback,which indicates that the screenshot is captured successfully, and returns the name of the screenshot file.
New regions for Amazon S3 cloud storage
This release adds support for Amazon S3 in the following regions:
20
: AP_NORTHEAST_321
: EU_NORTH_122
: ME_SOUTH_123
: US_GOV_EAST_1This release adds maxVideoDuration
to the start
method to set the maximum duration of the MP4 slice file generated by the web page recording.
When the page status is a 404
or 5XX
error, the page recording service automatically exits to avoid continuing to record the error page.
This release fixes an issue where audio was occasionally lost during a web page recording.
This version was released on June 10, 2021.
Network Geofencing
This release adds the region
parameter to the acquire
method so you can geofence your cloud recording service. If you specify a region, the cloud recording server connects only to the Agora servers within that region. The following regions are supported:
Third-party cloud storage
This release adds support for Microsoft Azure as a third-party storage solution.
This release optimizes the encoding settings for the web page recording, which reduce the bit rate without losing video quality.
Fixed security issues caused by vulnerabilities in Chrome V8.
region
parameter in the acquire
method.recorderStartTime
in the web_recorder_started
callback.web_recorder_reload
callback.This version was released on April 29, 2021.
New features
From this release, you can get MP4 files after a composite recording. Set avFileType
as ["hls","mp4"]
when you call the start method, and the recording service generates MP4 files once a recording starts.
For scenarios requiring high security, to guarantee the confidentiality, integrity, and authenticity of the data and to improve the computational efficiency of the data encryption, this release adds the following options in decryptionMode
:
Once you enable the built-in encryption, all users in the same channel must use the same encryption mode and key.
Improvement
From this release, the recording service automatically detects and resolves the occasional audio loss issue during a web page recording, which causes the recorded page to refresh. If necessary, you need to guarantee that the status of your web application remains the same before and after a refresh.
API changes
5
and 6
for decryptionMode
in the start
method.fileList
field in the uploaded
and backuped
callbacks.This version was released on March 31, 2021.
New feature
In composite recording mode, you can set the background image for both the video canvas and an individual user region. You can update the background image during a recording session. See Set the background color or background image for details.
Improvement
Fixed issues
videoFps
was too high.API changes
backgroundImage
, defaultUserBackgroundImage
and backgroundConfig
fields in the transcodingConfig
parameter of the start
method.backgroundImage
, defaultUserBackgroundImage
and backgroundConfig
fields in the clientRequest
parameter of the updateLayout
method.fileList
field in the web_recorder_stopped
callback.This release raises the maximum resolution of video sources for web page recording. The recorded web page can now contain video that has a resolution of up to of 1920 × 1080.
This release includes the following new feature and API changes:
Adds web page recording mode. In this mode, the content and audio of a specified web page are recorded in a single file.
web
as a value for mode
in the request URL for web page recording.scene
as a new parameter in the acquire
method for setting the application of the cloud recording resources."web_recorder_service"
as an extension service in the extensionServiceConfig
parameter of the start
method.This release improved the stability and performance of the recording service, and fixed the following issues:
This release adds the following new feature and API changes:
New feature
In composite recording mode, you can now upload recorded files to ApsaraVideo for VoD for further processing.
API changes
start
adds the extensionServiceConfig
parameter for specifying the configurations of ApsaraVideo for VoD. vod_started
and the vod_triggered
callbacks, which report the status of uploading recorded files to ApsaraVideo for VoD.New features
This release provides a more flexible user ID subscription feature, enabling you to set up a whitelist or blacklist for audio and video subscriptions. You can also update the subscription lists during the cloud recording. For details, see Set up subscription lists.
This release adds the session_failover
event, which occurs when the high availability mechanism is enabled and reports the new recording user ID.
API changes
start
adds the unSubscribeVideoUids
and unSubscribeAudioUids
parameters for setting up subscription blacklists. update
for updating the subscription lists during the cloud recording.session_failover
event.This release adds support for Kingsoft Cloud.
Cloud Recording now supports taking screenshots of the video streams in individual recording mode. See Capture Screenshots for details.
This release improved the availability of the cloud recording service. When a server is disconnected or when the process is killed, the cloud recording automatically switches to a new server to resume the service. See Fault processing when a cloud recording server is disconnected or the process killed for more information.
API Changes
In the acquire
method, adds the resourceExpiredHour
parameter for setting the time limit for all cloud recording method calls.
Adds the session_exit
event, which reports the exit status of the cloud recording service.
You can now use the query
method to get the names of the recorded files immediately after the recording starts.
This release supports Tencent Cloud as one of the third-party cloud storages.
New features
The RESTful API adds individual recording mode, which supports recording the audio and video of each user ID separately. See Individual Recording for details. Meanwhile, Agora provides the Audio & Video File Merging script, which you can use to merge the audio and video files generated in individual mode. See Merge Audio and Video Files for details.
The RESTful API adds the subscribeAudioUids
and subscribeVideoUids
parameters, which allow you to record only specified user IDs.
The RESTful API adds the fileNamePrefix
parameter, which allows you to specify the directory where you want to store the recorded files in the third-party cloud storage.
The RESTful API callback service adds the recorder_audio_stream_state_changed
and recorder_video_stream_state_changed
events to report the time when the state of the audio or video stream changes, as well as the corresponding user ID.
Agora provides the Format Converter script, which you can use to convert between multiple file formats, such as TS, MP3, and MP4. See Convert File Format for details.
You can achieve synchronized playback between the recorded files and other stream files, such as online whiteboards, courseware, and messages, by using the timestamp when the recording starts. You can get the timestamp by using the RESTful API callback service, or by parsing the M3U8 file. See Synchronized Playback for details.
Improvement
When an error occurs, you receive the error message in the HTTP response body, instead of just the error code. See Agora Cloud Recording RESTful API for detailed information about the error codes.
Fixed issue
When uploading fails after you use the wrong bucket
and key
values of the third-party cloud storage, Agora Cloud Recording returns an error instead of uploading the recorded files to Agora Cloud Backup.
New features
The RESTful API adds a customized layout for the recording video. See Set Video Layout for details.
You can set the mixedVideoLayout
parameter as 3
and set the regions for each user in the layoutConfig
parameter when starting a recording.
You can update the layout anytime during the recording by the updateLayout
method.
The RESTful API adds the backgroundColor
parameter to support customized background colors for the video layout.
To get the accurate starting time of a recording, the RESTful API provides the Unix timestamp of when the first slicing starts in the response of the query
method. The RESTful API callback service adds the recorder_slice_start
event to report the time when the first slicing starts and the time when the last recording fails.
Improvement
Optimizes the verification of whether resourceId
corresponds with uid
and cname
when calling the RESTful API.
Fixed issue
Fixed minor issues in the default video layout (floating layout).
This release supports RESTful APIs. With the RESTful APIs, you can use Agora Cloud Recording through HTTP requests without integrating the SDK.
See the following documents for details:
This is the first release of Agora Cloud Recording with the following functions: