Skip to content

/AWS1/CL_MDCCMAFENCSETTINGS

Settings for CMAF encryption

CONSTRUCTOR

IMPORTING

Optional arguments:

iv_clearlead TYPE /AWS1/MDCHLSCLEARLEAD /AWS1/MDCHLSCLEARLEAD

Enable Clear Lead DRM to reduce video startup latency by leaving the first segment unencrypted while DRM license retrieval occurs in parallel. This optimization allows immediate playback startup while maintaining content protection for the remainder of the stream. When enabled, the first output segment remains fully unencrypted, and encryption begins at the start of the second segment. The HLS manifest will omit #EXT-X-KEY tags during the clear segment and insert the first #EXT-X-KEY immediately before the first encrypted fragment. This feature is supported exclusively for CMAF HLS (fMP4) outputs and is compatible with all existing key provider integrations (SPEKE v1, SPEKE v2, and Static Key encryption). Supported codecs: H.264, H.265, and AV1 video codecs, and AAC audio codec. Choose Enabled to activate Clear Lead DRM optimization. Choose Disabled to use standard encryption where all segments are encrypted from the beginning.

iv_constantinitializationv00 TYPE /AWS1/MDC__STRMIN32MAX32PAT000 /AWS1/MDC__STRMIN32MAX32PAT000

This is a 128-bit, 16-byte hex value represented by a 32-character text string. If this parameter is not set then the Initialization Vector will follow the segment number by default.

iv_encryptionmethod TYPE /AWS1/MDCCMAFENCRYPTIONTYPE /AWS1/MDCCMAFENCRYPTIONTYPE

Specify the encryption scheme that you want the service to use when encrypting your CMAF segments. Choose AES-CBC subsample or AES_CTR.

iv_initializationvectorinm00 TYPE /AWS1/MDCCMAFINITIALIZATIONV00 /AWS1/MDCCMAFINITIALIZATIONV00

When you use DRM with CMAF outputs, choose whether the service writes the 128-bit encryption initialization vector in the HLS and DASH manifests.

io_spekekeyprovider TYPE REF TO /AWS1/CL_MDCSPEKEKEYPVDRCMAF /AWS1/CL_MDCSPEKEKEYPVDRCMAF

If your output group type is CMAF, use these settings when doing DRM encryption with a SPEKE-compliant key provider. If your output group type is HLS, DASH, or Microsoft Smooth, use the SpekeKeyProvider settings instead.

io_statickeyprovider TYPE REF TO /AWS1/CL_MDCSTATICKEYPROVIDER /AWS1/CL_MDCSTATICKEYPROVIDER

Use these settings to set up encryption with a static key provider.

iv_type TYPE /AWS1/MDCCMAFKEYPROVIDERTYPE /AWS1/MDCCMAFKEYPROVIDERTYPE

Specify whether your DRM encryption key is static or from a key provider that follows the SPEKE standard. For more information about SPEKE, see https://docs.aws.amazon.com/speke/latest/documentation/what-is-speke.html.


Queryable Attributes

ClearLead

Enable Clear Lead DRM to reduce video startup latency by leaving the first segment unencrypted while DRM license retrieval occurs in parallel. This optimization allows immediate playback startup while maintaining content protection for the remainder of the stream. When enabled, the first output segment remains fully unencrypted, and encryption begins at the start of the second segment. The HLS manifest will omit #EXT-X-KEY tags during the clear segment and insert the first #EXT-X-KEY immediately before the first encrypted fragment. This feature is supported exclusively for CMAF HLS (fMP4) outputs and is compatible with all existing key provider integrations (SPEKE v1, SPEKE v2, and Static Key encryption). Supported codecs: H.264, H.265, and AV1 video codecs, and AAC audio codec. Choose Enabled to activate Clear Lead DRM optimization. Choose Disabled to use standard encryption where all segments are encrypted from the beginning.

Accessible with the following methods

Method Description
GET_CLEARLEAD() Getter for CLEARLEAD, with configurable default
ASK_CLEARLEAD() Getter for CLEARLEAD w/ exceptions if field has no value
HAS_CLEARLEAD() Determine if CLEARLEAD has a value

ConstantInitializationVector

This is a 128-bit, 16-byte hex value represented by a 32-character text string. If this parameter is not set then the Initialization Vector will follow the segment number by default.

Accessible with the following methods

Method Description
GET_CONSTANTINITIALIZATION00() Getter for CONSTANTINITIALIZATIONVECTOR, with configurable d
ASK_CONSTANTINITIALIZATION00() Getter for CONSTANTINITIALIZATIONVECTOR w/ exceptions if fie
HAS_CONSTANTINITIALIZATION00() Determine if CONSTANTINITIALIZATIONVECTOR has a value

EncryptionMethod

Specify the encryption scheme that you want the service to use when encrypting your CMAF segments. Choose AES-CBC subsample or AES_CTR.

Accessible with the following methods

Method Description
GET_ENCRYPTIONMETHOD() Getter for ENCRYPTIONMETHOD, with configurable default
ASK_ENCRYPTIONMETHOD() Getter for ENCRYPTIONMETHOD w/ exceptions if field has no va
HAS_ENCRYPTIONMETHOD() Determine if ENCRYPTIONMETHOD has a value

InitializationVectorInManifest

When you use DRM with CMAF outputs, choose whether the service writes the 128-bit encryption initialization vector in the HLS and DASH manifests.

Accessible with the following methods

Method Description
GET_INITIALIZATIONVECTORIN00() Getter for INITIALIZATIONVECTORINMANI00, with configurable d
ASK_INITIALIZATIONVECTORIN00() Getter for INITIALIZATIONVECTORINMANI00 w/ exceptions if fie
HAS_INITIALIZATIONVECTORIN00() Determine if INITIALIZATIONVECTORINMANI00 has a value

SpekeKeyProvider

If your output group type is CMAF, use these settings when doing DRM encryption with a SPEKE-compliant key provider. If your output group type is HLS, DASH, or Microsoft Smooth, use the SpekeKeyProvider settings instead.

Accessible with the following methods

Method Description
GET_SPEKEKEYPROVIDER() Getter for SPEKEKEYPROVIDER

StaticKeyProvider

Use these settings to set up encryption with a static key provider.

Accessible with the following methods

Method Description
GET_STATICKEYPROVIDER() Getter for STATICKEYPROVIDER

Type

Specify whether your DRM encryption key is static or from a key provider that follows the SPEKE standard. For more information about SPEKE, see https://docs.aws.amazon.com/speke/latest/documentation/what-is-speke.html.

Accessible with the following methods

Method Description
GET_TYPE() Getter for TYPE, with configurable default
ASK_TYPE() Getter for TYPE w/ exceptions if field has no value
HAS_TYPE() Determine if TYPE has a value