Skip to content

Commit

Permalink
Merge pull request #658 from AgoraIO/1425-new-releases-update-cloud-r…
Browse files Browse the repository at this point in the history
…ecording

1425 Cloud recording Updates
  • Loading branch information
atovpeko authored Oct 12, 2023
2 parents cf227f7 + a97eb9f commit 2436107
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 48 deletions.
12 changes: 1 addition & 11 deletions cloud-recording/reference/rest-api/query.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,17 +81,7 @@ If the returned HTTP status code is `200`, it means the request was successful,
- `recordingService`: String. The status of the video subscription submodule. For details, see [Service status](../common-errors#service-status).
- `extensionServiceState`: JSONArray. An array of the detailed status information of each extension service.

**ApsaraVideo for VoD**
- `serviceName`: String. The name of the extension service. `aliyun_vod_service` means ApsaraVideo for VoD.
- `payload`: JSON. The status of the extension service.
- `state`: String. The status of uploading media content to the extension service.
- `"inProgress"`: The recorded files are being uploaded to the extension service.
- `"idle"`: No user is sending streams in the channel. Nothing is being uploaded.
- `videoInfo`: JSONArray. An array of the M3U8 files and their corresponding video IDs. ApsaraVideo for VoD generates a video ID for each M3U8 file uploaded.
- `fileName`: String. The name of the M3U8 file.
- `videoId`: String. The corresponding video ID of the M3U8 file.

**Web page recording**
**Web page recording**

- `serviceName`: String . The name of the extension service. `"web_recorder_service"` means web page recording.
- `payload`: JSON. The status of the extension service.
Expand Down
41 changes: 9 additions & 32 deletions cloud-recording/reference/rest-api/start.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ The following parameters are required in the request body.
| :-------------- | :----- | :----------------------------------------------------------- |
| `cname` | String | <ul><li> In web page recording mode, use `cname` to distinguish between recording sessions.</li><li> In other recording modes, use `cname` to set the name of the channel to be recorded. </li></ul> |
| `uid` | String | A string containing the user ID of the recording client. Must be the same `uid` used in the [`acquire`](../rest-api/acquire) method. |
| `clientRequest` | JSON | A specific client request that requires the following parameters: <li>[`token`](../glossary#token): String. The dynamic key used for the channel to record. Ensure that you set this parameter if App Certificate is enabled for your application. See [Authenticate Your Users with Tokens](../../develop/authentication-workflow).</li><li>[`recordingConfig`](#recordingConfig): JSON. Configurations for subscribing to media streams.</li><li>[`recordingFileConfig`](#recordingFileConfig): JSON. Configurations for the recorded files.</li><li>[`snapshotConfig`](#snapshotConfig): JSON. Video screenshot configurations.</li><li>[`storageConfig`](#storageConfig): JSON. Third-party cloud storage configurations.</li><li>[`extensionServiceConfig`](#extensionServiceConfig): JSON. Configurations for third-party extension services. Currently supports ApsaraVideo for VoD and web page recording.</li> |
| `clientRequest` | JSON | A specific client request that requires the following parameters: <li>[`token`](../glossary#token): String. The dynamic key used for the channel to record. Ensure that you set this parameter if App Certificate is enabled for your application. See [Authenticate Your Users with Tokens](../../develop/authentication-workflow).</li><li>[`recordingConfig`](#recordingConfig): JSON. Configurations for subscribing to media streams.</li><li>[`recordingFileConfig`](#recordingFileConfig): JSON. Configurations for the recorded files.</li><li>[`snapshotConfig`](#snapshotConfig): JSON. Video screenshot configurations.</li><li>[`storageConfig`](#storageConfig): JSON. Third-party cloud storage configurations.</li><li>[`extensionServiceConfig`](#extensionServiceConfig): JSON. Configurations for third-party extension services. </li> |

### Application configuration

Expand Down Expand Up @@ -69,7 +69,7 @@ The following parameters are required in the request body.
The following table compares various aspects of the three modes of `streamMode`:
| streamMode | Description | Index file generated | Slice file generated | Video encoded | Audio encoded | Features supported |
| :--------- | :----------------------------------------------------------- | :----------------------------------------------------------- | :----------------------------------------------------------- | :------------------ | :------------------ | :----------------------------------------------------------- |
| `default` | Default mode. | One M3U8 audio index file and one M3U8 video index file are generated per user ID. | Multiple TS audio slice files and multiple TS video slice files are generated per user ID. | Does not transcode. | Transcodes. | Individual Recording, Capturing Screenshots, ApsaraVideo for VoD (VoD). |
| `default` | Default mode. | One M3U8 audio index file and one M3U8 video index file are generated per user ID. | Multiple TS audio slice files and multiple TS video slice files are generated per user ID. | Does not transcode. | Transcodes. | Individual Recording, Capturing Screenshots. |
| `standard` | Standard mode. | One M3U8 audio index file, one M3U8 video index file, and one combined M3U8 audio and video index file are generated per user ID. If VP9 encoding is used on the web side, a combined MPD audio and video index file is generated per user ID. | Multiple TS audio slice files and multiple TS video slice files are generated per user ID.If VP9 encoding is used on the web side, multiple WebM audio slice files and multiple WebM video slice files are generated per user ID. | Does not transcode. | Transcodes. | Individual Recording and Capturing Screenshots. |
| `original` | Original encoding mode, which takes effect only when `streamTypes` is `0`. | One M3U8 audio index file is generated per user ID. | Multiple TS audio slice files per user ID. | Not applicable. | Does not transcode. | Individual Audio Non-transcoding Recording and Postpone Audio Mixing. |
- `decryptionMode`: (Optional) Number. The decryption mode, which corresponds to the encryption mode set by the Agora Native/Web SDK. When the channel is encrypted, Agora Cloud Recording uses `decryptionMode` to enable the built-in decryption function.
Expand Down Expand Up @@ -193,7 +193,6 @@ Agora supports only taking screenshots in a recording process or recording and t

- `vendor`: Number. The third-party cloud storage vendor.

- `0`: [Qiniu Cloud](https://www.qiniu.com/en/products/kodo)
- `1`: [Amazon S3](https://aws.amazon.com/s3/?nc1=h_ls)
- `2`: [Alibaba Cloud](https://www.alibabacloud.com/product/object-storage-service)
- `3`: [Tencent Cloud](https://intl.cloud.tencent.com/product/cos)
Expand All @@ -206,14 +205,7 @@ Agora supports only taking screenshots in a recording process or recording and t
- `region`: Number. The region information specified for the third-party cloud storage. The recording service only supports regions in the following lists:

In order to improve the success rate and real-time performance when uploading recording files, if you set the `region` of the cloud recording service in the `acquire` method, make sure that the region of the third-party cloud storage corresponds to the same geographical region. For example, if the region of the cloud recording service is set to `NA` (North America), the third-party cloud storage needs to be set to a location within North America.

- Third-party cloud storage is Qiniu Cloud (`vendor` = 0):
- `0`: East China
- `1`: North China
- `2`: South China
- `3`: North America
- `4`: Southeast Asia


- Third-party cloud storage is Amazon S3 (`vendor` = 1):
- `0`: US_EAST_1
- `1`: US_EAST_2
Expand All @@ -239,7 +231,7 @@ Agora supports only taking screenshots in a recording process or recording and t
- `23`:US_GOV_EAST_1
- `24`: AP_SOUTHEAST_3
- `25`: EU_SOUTH_1
- `26`: AWS_REGION_NUM

- Third-party cloud storage is Alibaba Cloud (`vendor` = 2):
- `0`: CN_Hangzhou
- `1`: CN_Shanghai
Expand All @@ -264,6 +256,11 @@ Agora supports only taking screenshots in a recording process or recording and t
- `20`:CN_Heyuan
- `21`:CN_Guangzhou
- `22`:CN_Chengdu
- `23`: CN_Nanjing
- `24`: CN_Fuzhou
- `25`: CN_Wulanchabu
- `26`: CN_Northeast_2
- `27`: CN_Southeast_7
For details, see <a href="https://www.alibabacloud.com/help/doc-detail/31837.html">Alibaba Cloud Documentation</a>.
- Third-party cloud storage is Tencent Cloud (`vendor` = 3):
- `0`:AP_Beijing_1
Expand Down Expand Up @@ -373,26 +370,6 @@ Agora supports only taking screenshots in a recording process or recording and t

Currently you cannot configure more than one extension service per recording session.

**ApsaraVideo for VoD**
When using ApsaraVideo for VoD,` extensionServicesextensionServices` includes the following fields:
- `serviceName`: String. The name of the extension service. To use ApsaraVideo for VoD, set it as `"aliyun_vod_service"`.
- `errorHandlePolicy`: (Optional) String. Error handling policy. You can only set it to the default value, `"error_abort"`, which means that if an error occurs to the current extension service, other extension services also stop.
- `serviceParam`: JSON. Configurations for an extension service. To use ApsaraVideo for VoD, configure as follows:
- `accessKey`: String. Corresponds to the `AccessKeyId` in the AccessKey of Alibaba Cloud. For details, see [Alibaba Cloud's documentation](https://www.alibabacloud.com/help/doc-detail/53045).
- `secretKey`: String. Corresponds to the `AccessKeySecret` in the AccessKey of Alibaba Cloud. For details, see [Alibaba Cloud's documentation](https://www.alibabacloud.com/help/doc-detail/53045).
- `regionId`: String. The service region. For details, see [Alibaba Cloud's documentation](https://www.alibabacloud.com/help/doc-detail/43248).
- `apiData`: JSON. Configurations for ApsaraVideo for VoD.
- `videoData`: JSON. Video configurations. See [Alibaba Cloud's documentation](https://www.alibabacloud.com/help/doc-detail/55407) for details about the following parameters:
- `title`: String. The title of the video.
- `description`: (Optional) String. The description of the video.
- `coverUrl`: (Optional) String. The URL of the custom video thumbnail.
- `cateId`: (Optional) String. The ID of the video category. The ID must be an integer.
- `tags`: (Optional) String. The tags of the video.
- `templateGroupId`: (Optional) String. The ID of the transcoding template group.
- `userData`: (Optional) String. The custom configurations.
- `storageLocation`: (Optional) String. The bucket.
- `workflowId`: (Optional) String. The ID of the workflow.

Currently only composite recording is supported.

**Web page recording**
Expand Down
5 changes: 1 addition & 4 deletions cloud-recording/reference/rest-api/update.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,6 @@ The following parameters are required in the request body:

- (Default) `false`: Continues the web page recording. If the recording has been paused, call the `update` method and set the `onhold` parameter to false to continue the recording. If you need to continuously call the `update` method to pause or resume page recording, call it after receiving the last HTTP response of `update`; otherwise the actual result may be inconsistent with your expectation.

- `url`: (Optional) String. Sets the address of the web page to record.

`rtmpPublishConfig` requires the following parameters:
- `outputs`:JSON Array. Configure as follows:
- `rtmpUrl`:String. The CDN address which you want to push stream to.
Expand Down Expand Up @@ -104,8 +102,7 @@ https://api.agora.io/v1/apps/<appid>/cloud_recording/resourceid/<resourceid>/sid
"uid":"527841",
"clientRequest":{
"webRecordingConfig":{
"url": "https://xxxxx",
"onhold": false
"onhold": true
}
}
}
Expand Down
15 changes: 14 additions & 1 deletion shared/cloud-recording/release-notes/rest.mdx
Original file line number Diff line number Diff line change
@@ -1,4 +1,17 @@

### 2023.07.05

This release adds the following improvements:

- Adds support for the following regions of Alibaba Cloud storage:
* `23`: CN_Nanjing
* `24`: CN_Fuzhou
* `25`: CN_Wulanchabu
* `26`: CN_Northeast_2
* `27`: CN_Southeast_7

- Updates the Agora transcoding script to reduce background noise.

### 2022.11.20

This release adds the following improvements:
Expand Down Expand Up @@ -420,5 +433,5 @@ This is the first release of Agora Cloud Recording with the following functions:
- High-quality voice and video recordings.
- Mixed-stream voice and video recordings of all users in a channel.
- Three composite video layouts: float (default), best fit, and vertical.
- Third-party cloud storage. Agora Cloud Recording supports Amazon S3, Alibaba Cloud, and Qiniu Cloud.
- Third-party cloud storage. Agora Cloud Recording supports Amazon S3, and Alibaba Cloud.
- Provides C++ and Java SDK packages.

0 comments on commit 2436107

Please sign in to comment.