Create a Transcoding Template
Create a transcoding template with transcoding or transmuxing presets for an ingest domain, an app, or a stream.
Request
Request-Line
POST /lls/v1.0/template/transcoding
Request
Request Body
Parameter | Type | Required | Description |
---|---|---|---|
templateName | String | Mandatory | transcoding template name. |
domain | String | Mandatory | ingest domain name |
app | String | Optional | app name. if not specified, the transcoding template will be applied to all apps. |
stream | String | Optional | stream name. if not specified, the transcoding template will be applied to all streams. |
deliveryProtocol | Array | Mandatory | delivery protocol. Valid values: http-flv, ll-hls, hls,dash. |
transcodingPresets | Array | Mandatory | the names of transcoding presets for delivery stream. the special preset named 'transmux' will package the ingest stream without any transcoding. |
Response
Response Body
Parameter | Type | Required | Description |
---|---|---|---|
templateName | String | Mandatory | transcoding template name. |
created | Timestamp | Mandatory | Timestamp of created time in UTC timezone. Default is now. |
status | String | Mandatory | Status of transcoding template. Valid values: active, inactive. |
domain | String | Mandatory | ingest domain name |
app | String | Optional | app name. if not specified, the transcoding template will be applied to all apps. |
stream | String | Optional | stream name. if not specified, the transcoding template will be applied to all streams. |
deliveryProtocol | Array | Mandatory | delivery protocol. Valid values: http-flv, ll-hls, hls,dash. |
transcodingPresets | Array | Mandatory | the names of transcoding presets for delivery stream. the special preset named 'transmux' will package the ingest stream without any transcoding. |
Status Codes, Error Codes and Error Messages
Status Code | Error Code | Error Message |
---|---|---|
400 | LLS.TranscodingTemplate.InvalidTemplateName | Transcoding template name invalid. |
400 | LLS.TranscodingTemplate.Conflict | Conflict transcoding emplate exists. |
400 | LLS.TranscodingTemplate.InvalidStatus | Invalid status. |
400 | LLS.TranscodingTemplate.InvalidPath | Invalid path. |
400 | LLS.TranscodingTemplate.InvalidParameter | Invalid parameter. |
400 | LLS.TranscodingTemplate.TemplateNotFound | Template not found. |
400 | LLS.TranscodingTemplate.DomainNotFound | Domain not found. |
400 | LLS.TranscodingTemplate.AppNotFound | App not found. |
400 | LLS.TranscodingTemplate.StreamNotFound | Stream not found. |
400 | LLS.TranscodingTemplate.InvalidTemplateName | Invalid template name. |
400 | LLS.TranscodingTemplate.TemplateExists | Template already exists. |
400 | LLS.TranscodingTemplate.BucketNotFound | Bucket not found. |
Examples
Create a domain-level transcoding template
Request
POST /lls/v1.0/template/transcoding HTTP/1.1
{
"templateName": "domainTemplate",
"domain": "ingest.example.com",
"deliveryProtocol": ["ll-hls", "hls", "dash"],
"transcodingPresets": ["720p", "480p", "360p"]
}
Successful Response Body
{
"templateName": "domainTemplate",
"created": "2025-07-15T08:47:10Z",
"status": "active",
"domain": "ingest.example.com",
"deliveryProtocol": ["ll-hls", "hls", "dash"],
"transcodingPresets": ["720p", "480p", "360p"]
}
Create a domain+app level transcoding template
Request
POST /lls/v1.0/template/transcoding HTTP/1.1
{
"templateName": "appTemplate",
"domain": "ingest.example.com",
"app": "live",
"deliveryProtocol": ["http-flv", "ll-hls"],
"transcodingPresets": ["1080p", "720p", "480p"]
}
Successful Response Body
{
"templateName": "appTemplate",
"created": "2025-07-15T08:48:30Z",
"status": "active",
"domain": "ingest.example.com",
"app": "live",
"deliveryProtocol": ["http-flv", "ll-hls"],
"transcodingPresets": ["1080p", "720p", "480p"]
}
Create a domain+app+stream level transcoding template
Request
POST /lls/v1.0/template/transcoding HTTP/1.1
{
"templateName": "streamTemplate",
"domain": "ingest.example.com",
"app": "live",
"stream": "stream1",
"deliveryProtocol": ["ll-hls"],
"transcodingPresets": ["4k", "1080p", "720p"]
}
Successful Response Body
{
"templateName": "streamTemplate",
"created": "2025-07-15T08:49:45Z",
"status": "active",
"domain": "ingest.example.com",
"app": "live",
"stream": "stream1",
"deliveryProtocol": ["ll-hls"],
"transcodingPresets": ["4k", "1080p", "720p"]
}
Create a transcoding template with transmux preset
Request
POST /lls/v1.0/template/transcoding HTTP/1.1
{
"templateName": "transmuxTemplate",
"domain": "ingest.example.com",
"app": "live",
"deliveryProtocol": ["ll-hls", "http-flv"],
"transcodingPresets": ["transmux"]
}
Successful Response Body
{
"templateName": "transmuxTemplate",
"created": "2025-07-15T08:51:30Z",
"status": "active",
"domain": "ingest.example.com",
"app": "live",
"deliveryProtocol": ["ll-hls", "http-flv"],
"transcodingPresets": ["transmux"]
}
Best Practices
Rate Limiting
Rate Limits
Rate limiting is posed upon the API, please kindly check your API calls to ensure complying with the rate limit below:
- 100 requests per minute
- 1000 requests per hour