Skip to main content

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

ParameterTypeRequiredDescription
templateNameStringMandatorytranscoding template name.
domainStringMandatoryingest domain name
appStringOptionalapp name. if not specified, the transcoding template will be applied to all apps.
streamStringOptionalstream name. if not specified, the transcoding template will be applied to all streams.
deliveryProtocolArrayMandatorydelivery protocol. Valid values: http-flv, ll-hls, hls,dash.
transcodingPresetsArrayMandatorythe names of transcoding presets for delivery stream. the special preset named 'transmux' will package the ingest stream without any transcoding.

Response

Response Body

ParameterTypeRequiredDescription
templateNameStringMandatorytranscoding template name.
createdTimestampMandatoryTimestamp of created time in UTC timezone. Default is now.
statusStringMandatoryStatus of transcoding template. Valid values: active, inactive.
domainStringMandatoryingest domain name
appStringOptionalapp name. if not specified, the transcoding template will be applied to all apps.
streamStringOptionalstream name. if not specified, the transcoding template will be applied to all streams.
deliveryProtocolArrayMandatorydelivery protocol. Valid values: http-flv, ll-hls, hls,dash.
transcodingPresetsArrayMandatorythe 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 CodeError CodeError Message
400LLS.TranscodingTemplate.InvalidTemplateNameTranscoding template name invalid.
400LLS.TranscodingTemplate.ConflictConflict transcoding emplate exists.
400LLS.TranscodingTemplate.InvalidStatusInvalid status.
400LLS.TranscodingTemplate.InvalidPathInvalid path.
400LLS.TranscodingTemplate.InvalidParameterInvalid parameter.
400LLS.TranscodingTemplate.TemplateNotFoundTemplate not found.
400LLS.TranscodingTemplate.DomainNotFoundDomain not found.
400LLS.TranscodingTemplate.AppNotFoundApp not found.
400LLS.TranscodingTemplate.StreamNotFoundStream not found.
400LLS.TranscodingTemplate.InvalidTemplateNameInvalid template name.
400LLS.TranscodingTemplate.TemplateExistsTemplate already exists.
400LLS.TranscodingTemplate.BucketNotFoundBucket 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