Update template
Updated
Updates an existing Media Gateway flow configuration template.
https://api.agora.io/{region}/v1/projects/{appId}/rtls/ingress/stream-templates/{templateId}This method updates a flow configuration template.
Note
- The parameters supported for the update are the following:
transcoding.video,transcoding.audio, andjitterBuffer. This means that, for example, if you only want to update thefpsfield oftranscoding.video, you need to pass in the entiretranscoding.videofield with the modifiedfpsfield and other fields unchanged. transcoding.video,transcoding.audio, andjitterBufferare independent of each other. If onlytranscoding.videois passed in, then only its parameters will be updated and the parameters oftranscoding.audioandjitterBufferwill not be affected.
Note
- This interface can only be called if the flow configuration template already exists.
- Modifications to a flow configuration template will only take effect after the stream is re-pushed. Considering the synchronization delay between the gateway and the database, wait 3 minutes after calling this interface before re-pushing the stream.
Path Parameters
Region for the streaming key or stream. Supported values are na for North America, eu for Europe, ap for Asia except mainland China, and cn for mainland China.
Important
Make sure that:
- The
regionvalue is the same as for the input source stream. - The domain names for setting the
regionparameter and streaming are the same. - The
regionvalue is in lowercase.
na | eu | ap | cnThe app ID provided by Agora to each developer. After creating a project in Agora Console, you can get an app ID. The app ID is a unique identifier for a project.
The flow configuration template ID. The value can contain only lowercase letters, uppercase letters, and numbers, and cannot exceed 12 bytes. Set the value according to your business use case. For example, use "720p" and "1080p" for different target resolutions, or "gameA" and "gameB" for different game use cases.
12^[A-Za-z0-9]+$720pHeader Parameters
The UUID (Universally Unique Identifier) of the request. After you pass in this field, the Agora server returns this field in the response header. It is recommended to assign X-Request-ID a value. If omitted, the Agora server automatically generates a UUID and returns it.
6d35d43f-f4c5-4b3a-9df4-8f0d7e1d5f0aRequest Body
application/json
Note
To ensure a successful request, do not set the required fields to null or leave them empty.
Audio and video transcoding configuration.
Video transcoding mode. force forces transcoding. adaptive enables transcoding when the source stream contains B-frames.
forceforce | adaptiveEncoding width of the main stream in pixels. If not specified or set to 0, the source stream width is used unless height is set.
Note
If the ABR function is enabled, this field is required.
[0, 3840]Encoding height of the main stream in pixels. If not specified or set to 0, the source stream height is used unless width is set.
Note
If the ABR function is enabled, this field is required.
[0, 3840]Video encoding frame rate in fps. If not specified or set to 0, the source stream frame rate is used.
[0, 60]Encoding bitrate of the main stream in Kbps. If omitted, the source stream bitrate is used. If set to 0, Agora automatically chooses a bitrate based on width and height.
Note
If you enable low-speed streaming (provide the following simulcastStream object), this field is required. If you do not enable low-speed streaming, it is recommended to use the automatically matched bitrate without setting the bitrate yourself.
[0, 20000]Bitrate saving ratio for PVC. For example, 20 means saving 20 percent of the bitrate. This parameter is effective only when video.bitrate is missing or 0.
Super Resolution intensity. Larger values indicate higher intensity.
128[1, 256]Low-quality video stream configuration. If provided, Media Gateway enables the low-quality stream and uses these transcoding parameters.
Width in pixels. The value must be less than video.width. If omitted or set to 0, video.width / 2 is used.
[0, 3840]Height in pixels. The value must be less than video.height. If omitted or set to 0, video.height / 2 is used.
[0, 3840]Frame rate in fps. The value must be less than or equal to video.fps. If omitted or set to 0, the default value is 15.
15[0, 60]Bitrate of the low-quality video stream in Kbps. The value must be less than video.bitrate. If omitted or set to 0, Agora chooses an appropriate bitrate based on resolution and fps.
Note
When enabling the low-quality stream and specifying low-quality bitrate, you need to specify video.bitrate at the same time.
Layer transcoding parameters for adaptive bitrate. If specified, ABR is enabled.
Note
-
You can set either
simulcastStreamorsimulcastStreamLayer. If you set both,simulcastStreamsetting does not take effect. -
For resolution and bitrate settings for main and ABR streams, recommended values, and viewer subscription settings, refer to Enable adaptive bitrate.
Encoding width of the layer in pixels. If specified, this value must be smaller than video.width and decrease monotonically as layer ID increases.
Encoding height of the layer in pixels. If specified, this value must be smaller than video.height and decrease monotonically as layer ID increases.
Encoding frame rate of the layer in fps. If specified, this value must be smaller than video.fps. If omitted or set to 0, the main stream frame rate is used.
Encoding bitrate of the layer in Kbps. This value must be smaller than video.bitrate and decrease monotonically by layer ID.
Encoded audio use case. The default value 0 means 48 KHz sampling rate, music encoding, mono, and a maximum encoding rate of 64 Kbps. Contact Agora technical support for other profile settings.
0Audio encoding bitrate in Kbps. If omitted, the value is determined by profile.
[64, 320]Network jitter buffer. Takes effect only when video transcoding is enabled.
Maximum buffer length in ms. Media Gateway adds this value to the end-to-end delay to reduce lag caused by network jitter.
500Maximum buffer length in ms. This value must be greater than jitterBuffer.size. When the jitter buffer exceeds this value, Media Gateway enables acceleration until it returns to jitterBuffer.size.
1000Response Body
application/json
application/json
application/json
Response schema
200The request succeeded and updated the template.
The status of this request. success means the request succeeds.
401The request failed. A 401 (Unauthorized) response status code means the request is not authorized.
Response Headers
The UUID (Universally Unique Identifier) of the request. The value is in the X-Request-ID response header. If a request error occurs, print the value in the log to troubleshoot the problem.
2006d35d43f-f4c5-4b3a-9df4-8f0d7e1d5f0aRequest examples
curl --location -g --request PUT 'https://api.agora.io/{{region}}/v1/projects/{{appId}}/rtls/ingress/stream-templates/{{templateId}}' \
--data '
{
"settings": {
"transcoding": {
"video": {
"enabled": true,
"codec": "H.264",
"width": 1280,
"height": 720,
"fps": 24,
"bitrate": 2200,
"simulcastStream": {
"width": 960,
"height": 540,
"fps": 24,
"bitrate": 1670
}
}
}
}
}'
Response example
{ "status": "success"}