Starts an RTC cloud recording task.
Operation description
Cloud recording is a paid feature. For billing details, see Cloud recording fees.
Endpoints
The following endpoints are active for this operation:
| Region | Region ID | Public endpoint |
| Shanghai | cn-shanghai | live.aliyuncs.com |
| Singapore | ap-southeast-1 | live.ap-southeast-1.aliyuncs.com |
| US (Virginia) | us-east-1 | live.us-east-1.aliyuncs.com |
Rate limit
The individual user QPS limit for this operation is 50 calls per second. If this limit is exceeded, API calls are throttled, which may affect your business. Invoke this operation as needed.
Try it now
Test
RAM authorization
|
Action |
Access level |
Resource type |
Condition key |
Dependent action |
|
live:StartRtcCloudRecording |
create |
*All Resource
|
None | None |
Request parameters
|
Parameter |
Type |
Required |
Description |
Example |
| AppId |
string |
Yes |
The ID of the app to which the channel to be recorded belongs. The app must belong to the primary account of the current API caller. |
********-7074-****-9ef5-85c19a4***** |
| ChannelId |
string |
Yes |
The ID of the channel to be recorded. Ensure that the channel has active users when this operation is called. Otherwise, the recording task fails to be created. |
room1024 |
| SubscribeParams |
object |
Yes |
The subscription parameters. |
|
| SubscribeUserIdList |
array<object> |
Yes |
The list of subscribed UserId information. In single-stream recording mode, each UserId is recorded separately. In stream mixing recording mode, the audio and video of all UserIds are mixed into one set of audio and video. Note
|
|
|
object |
No |
The information of a subscribed UserId. |
||
| UserId |
string |
Yes |
The subscribed UserId. |
userA |
| StreamType |
integer |
No |
The media type of the subscribed UserId. Valid values:
Valid values:
|
0 |
| SourceType |
integer |
No |
The video input stream type of the UserId. This parameter is valid only when subscribing to a non-audio-only stream (StreamType != 1). Valid values:
Valid values:
|
0 |
| RecordParams |
object |
Yes |
The recording parameters. |
|
| RecordMode |
integer |
Yes |
The recording mode. Valid values:
Valid values:
|
0 |
| StreamType |
integer |
No |
The media type of the recorded output stream. Valid values:
Valid values:
|
0 |
| MaxFileDuration |
integer |
No |
The maximum duration of a recording file, in seconds. Recording files that exceed this duration are split. The value must be within the range of [180, 7200], which is a maximum of 2 hours. If not specified, the default value is 2 hours. |
7200 |
| StorageParams |
object |
Yes |
The storage parameters. |
|
| StorageType |
integer |
Yes |
The storage method. Valid values:
Valid values:
|
1 |
| FileInfo |
array<object> |
No |
The file storage information, which specifies the format, storage location, and naming of recording files. This parameter is valid only when StorageType is set to OSS. Note
A recording file is generated for each element in the array based on the corresponding configuration. If no format is specified, the HLS format is used by default. |
|
|
object |
No |
The storage configuration for different file formats. |
||
| Format |
string |
Yes |
The file storage format. Valid values:
Valid values:
|
HLS |
| FileNamePattern |
string |
No |
The file naming format. You can select and combine the following variables in any order:
Default values:
Note
|
{AppId}_{ChannelId}_{StartTime}_{UserId} |
| SliceNamePattern |
string |
No |
The segment naming format. This parameter is valid only in HLS format. Similar to FileNamePattern, except that the Sequence variable is additionally available:
Default values:
Note
|
{AppId}_{ChannelId}_{StartTime}_{Sequence} |
| FilePathPrefix |
array |
No |
The file storage path. Each element in the array corresponds to a directory level. For example, if the parameter value is ["dir1","dir2"], the xxx.m3u8 file is saved as dir1/dir2/TaskId/xxx.m3u8. If this parameter is empty, the file is saved directly as TaskId/xxx.m3u8.
|
|
|
string |
No |
The name of each directory level. |
dir1 |
|
| SliceDuration |
integer |
No |
The segment length in seconds. This parameter is valid only in HLS format. The value must be within the range of [10, 30]. (Default value: 30) If you do not have special requirements, use the default value. |
30 |
| OSSParams |
object |
No |
The OSS storage configuration. This parameter is required when the storage method is OSS and is invalid when the storage method is VOD. |
|
| OSSEndpoint |
string |
Yes |
The endpoint of the OSS storage. The corresponding region ID must be consistent with the selected endpoint. |
oss-cn-shanghai.aliyuncs.com |
| OSSBucket |
string |
Yes |
The bucket name of the OSS storage. The bucket must belong to the primary account of the current API caller. |
mytest-bucket |
| VodParams |
object |
No |
The VOD storage configuration. This parameter is required when the storage method is VOD and is invalid when the storage method is OSS. Note
|
|
| StorageLocation |
string |
No |
The storage address configured in the video-on-demand console under Media Asset Management > Storage Management. Recording files are first saved to this location and then uploaded to VOD. Note
|
mytest.oss-cn-shenzhen.aliyuncs.com |
| VodTranscodeGroupId |
string |
No |
The video-on-demand transcoding template group ID. Note
|
****8a914d3989e9825eb90530b2**** |
| AutoCompose |
integer |
No |
Specifies whether to enable automatic merging. Valid values:
Valid values:
|
0 |
| ComposeVodTranscodeGroupId |
string |
No |
The VOD transcoding template group ID used to transcode the new video generated by automatic merging in the video-on-demand service. Note
|
****4c34112cfe68248f2f77759c**** |
| MixTranscodeParams |
object |
No |
The transcoding parameters. This parameter is not required in single-stream recording mode and is required in stream mixing recording mode. |
|
| FrameFillType |
integer |
No |
The frame fill type when a stream is interrupted. Valid values:
Valid values:
|
0 |
| AudioBitrate |
integer |
Yes |
The audio bitrate in kbps. The value must be within the range of [8, 500]. Required in stream mixing mode. |
300 |
| AudioChannels |
integer |
Yes |
The number of audio channels. Valid values:
Required in stream mixing mode. Valid values:
|
2 |
| AudioSampleRate |
integer |
Yes |
The audio sample rate in Hz. Valid values:
Required in stream mixing mode. Valid values:
|
32000 |
| VideoCodec |
string |
No |
The video encoding format. Valid values:
Valid values:
|
H.264 |
| VideoBitrate |
integer |
No |
The video bitrate in kbps. The value must be within the range of [1, 10000]. Required in stream mixing mode when the recording output is expected to contain video. Invalid in other cases. |
5000 |
| VideoFramerate |
integer |
No |
The video frame rate in fps. The value must be within the range of [1, 60]. Required in stream mixing mode when the recording output is expected to contain video. Invalid in other cases. |
30 |
| VideoGop |
integer |
No |
The video GOP. One I-frame exists for every VideoGop frames. The value must be within the range of [1, 60]. Required in stream mixing mode when the recording output is expected to contain video. Invalid in other cases. |
30 |
| VideoHeight |
integer |
No |
The video height in pixels. The value must be within the range of [0, 1920]. (Default value: 0) |
480 |
| VideoWidth |
integer |
No |
The video width in pixels. The value must be within the range of [0, 1920]. (Default value: 0) |
640 |
| MixLayoutParams |
object |
No |
The layout parameters. This parameter is not required in single-stream recording mode. In stream mixing recording mode, this parameter is required when the recording output is expected to contain video. |
|
| MixBackground |
object |
No |
The global background image for stream mixing. |
|
| RenderMode |
integer |
No |
The display mode for the output. Valid values:
Valid values:
|
0 |
| Url |
string |
No |
The URL of the background image. The maximum length is 2048 characters. |
https://xxxx.com/photos/my-test-picture.png |
| UserPanes |
array<object> |
No |
The window layout information for subscribed users. Only UserIds with layout information configured are placed in the video. Required in stream mixing mode when recording non-audio-only files. |
|
|
array<object> |
No |
The window configuration in the video. |
||
| UserId |
string |
No |
The UserId corresponding to this window.
|
userA |
| SourceType |
integer |
No |
The video input stream type of the UserId. Setting SourceType is invalid when UserId is not specified. Valid values:
The combination of UserId and SourceType set here must be included in SubscribeUserIdList. Valid values:
|
0 |
| Height |
string |
No |
The pane height as a normalized percentage. The value must be within the range of [0, 1]. (Default value: 0) |
0.5 |
| Width |
string |
No |
The pane width as a normalized percentage. The value must be within the range of [0, 1]. (Default value: 0) |
0.5 |
| X |
string |
No |
The X coordinate as a normalized percentage. The value must be within the range of [0, 1]. (Default value: 0) |
0 |
| Y |
string |
No |
The Y coordinate as a normalized percentage. The value must be within the range of [0, 1]. (Default value: 0) |
0 |
| ZOrder |
integer |
No |
The stacking order. 0 is the bottom layer, layer 1 is above layer 0, and so on. (Default value: 0) |
0 |
| SubBackground |
object |
No |
The sub-pane background image. When a user turns off the camera, has not started stream ingest after joining, or leaves the channel midway, the corresponding image is filled in the layout position. |
|
| RenderMode |
integer |
No |
The display mode for the sub-pane output. Valid values:
Valid values:
|
0 |
| Url |
string |
No |
The URL of the background image. The maximum length is 2048 characters. |
https://xxxx.com/photos/my-test-pane-picture.png |
| NotifyUrl |
string |
No |
The URL for receiving callback messages. Task status messages are pushed to this URL in JSON format via POST. The maximum length is 2048 characters. For callback message details, see documentation. |
http://xxxx/test/mycallback |
| NotifyAuthKey |
string |
No |
The authentication key for callback messages. If not specified, no authentication is performed. If specified, the length must be within [16, 64] characters and consist of only uppercase and lowercase letters and digits.
|
mytestkeymytestkey |
| NotifyFileUploadedFormat |
array |
No |
The specified formats for which a callback message is sent when the recording file generation event (RecordFileUploaded) is triggered. |
|
|
string |
No |
The specific file format for which to receive callbacks. Valid values (case-insensitive):
VOD storage mode is not currently supported. For OSS storage mode, the selected format must be included in the file formats specified in StorageParams.FileInfo. |
MP4 |
|
| MaxIdleTime |
integer |
No |
The idle timeout period. When the task remains idle for longer than MaxIdleTime, the task is automatically stopped. Unit: seconds. The value must be within the range of [10, 14400], which is a maximum of 4 hours. (Default value: 300 seconds)
|
600 |
-
In single-stream recording mode:
You can subscribe to both the camera and screen sharing streams of the same UserId simultaneously, but the FileNamePattern and SliceNamePattern parameters must include the SourceType variable (to avoid recording files overwriting each other).
Subscribing to only the video-only stream of a UserId is not currently supported. In single-stream mode, UserInfo.StreamType cannot be set to 2.
-
In single-stream recording mode:
If RecordParams.StreamType is audio-only (value 1), SubscribeParams cannot contain a video-only subscription (SubscribeParams value 2).
If RecordParams.StreamType is video-only (value 2), SubscribeParams cannot contain an audio-only subscription (SubscribeParams value 1).
-
In stream mixing recording mode:
If RecordParams.StreamType is audio-only (value 1), not all UserIds in SubscribeParams can subscribe to video-only streams (all SubscribeParams values set to 2).
If RecordParams.StreamType is video-only (value 2), not all UserIds in SubscribeParams can subscribe to audio-only streams (all SubscribeParams values set to 1).
-
During recording, if the channel is closed midway, users must rejoin and resume stream ingest within the idle timeout period. Otherwise, the task is automatically stopped.
Response elements
|
Element |
Type |
Description |
Example |
|
object |
The response parameters. |
||
| RequestId |
string |
The request ID. |
******58-5876-****-83CA-B56278****** |
| TaskId |
string |
The task ID. |
******73-8501-****-8ac1-72295a****** |
Examples
Success response
JSON format
{
"RequestId": "******58-5876-****-83CA-B56278******",
"TaskId": "******73-8501-****-8ac1-72295a******"
}
Error codes
|
HTTP status code |
Error code |
Error message |
Description |
|---|---|---|---|
| 400 | InvalidParameter.NotifyUrl | %s, please check the notifyUrl. | The parameter NotifyUrl format is invalid, please check. |
| 400 | InvalidParameter.StorageParams.FileInfo | %s, please check the fileInfo of storageParams. | The parameter FileInfo has invalid fields, please check. |
| 400 | InvalidParameter.StorageParams.OSSParams | %s, please check the ossParams of storageParams. | The parameter OSSParams has invalid fields, please check. |
| 400 | NotFound.OSSBucket | %s, please check the ossBucket of storageParams. | The parameter OSSBucket does not exist. |
| 400 | InvalidParameter.SubscribeParams.SubscribeUserIdList | %s, please check the subscribeUserIdList of subscribeParams. | The parameter SubscribeUserIdList is invalid, please check. |
| 400 | InvalidParameter.MixLayoutParams.UserPanes | %s, please check the userPanes of mixLayoutParams. | The parameter UserPanes has invalid fields, please check. |
| 400 | InvalidParameter.MixTranscodeParams | %s, please check the transcodeParams. | The parameter MixTranscodeParams has invalid fields, please check. |
| 400 | MissingParameter | %s. | Missing parameter |
| 403 | InvalidParameter.UserId | %s, please check the UserId. | UserId is invalid, please check. |
| 403 | QuotaExceed.RunningTask | The number of active cloud recording tasks has reached the limit. | The number of active cloud recording tasks has reached the limit. |
| 404 | InvalidParameter.ChannelId | %s, please check the channelId. | |
| 404 | InvalidParameter.AppId | %s, please check the appId. | The parameter AppId is invalid. Check it. |
| 405 | InvalidParameter.StorageParams.VodParams | %s, please check the vodParams of storageParams. | |
| 405 | InvalidParameter.NotifyAuthKey | %s, please check the notifyAuthKey. | |
| 405 | InvalidParameter.MaxIdleTime | %s, please check the maxIdleTime. | |
| 405 | InvalidParameter.RecordParams | %s, please check the recordParams. | |
| 405 | InvalidParameter.StorageParams.StorageType | %s, please check the storageType of storageParams. | The parameter StorageType is invalid, please check. |
| 405 | InvalidParameter.NotifyFileUploadedFormat | %s, please check the notifyFileUploadedFormat. | The parameter NotifyFileUploadedFormat is invalid, please check. |
See Error Codes for a complete list.
Release notes
See Release Notes for a complete list.