class Aws::MediaConvert::Types::CmafGroupSettings

Settings related to your CMAF output package. For more information, see docs.aws.amazon.com/mediaconvert/latest/ug/outputs-file-ABR.html. When you work directly in your JSON job specification, include this object and any required children when you set Type, under OutputGroupSettings, to CMAF_GROUP_SETTINGS.

@note When making an API call, you may pass CmafGroupSettings

data as a hash:

    {
      additional_manifests: [
        {
          manifest_name_modifier: "__stringMin1",
          selected_outputs: ["__stringMin1"],
        },
      ],
      base_url: "__string",
      client_cache: "DISABLED", # accepts DISABLED, ENABLED
      codec_specification: "RFC_6381", # accepts RFC_6381, RFC_4281
      destination: "__stringPatternS3",
      destination_settings: {
        s3_settings: {
          access_control: {
            canned_acl: "PUBLIC_READ", # accepts PUBLIC_READ, AUTHENTICATED_READ, BUCKET_OWNER_READ, BUCKET_OWNER_FULL_CONTROL
          },
          encryption: {
            encryption_type: "SERVER_SIDE_ENCRYPTION_S3", # accepts SERVER_SIDE_ENCRYPTION_S3, SERVER_SIDE_ENCRYPTION_KMS
            kms_encryption_context: "__stringPatternAZaZ0902",
            kms_key_arn: "__stringPatternArnAwsUsGovCnKmsAZ26EastWestCentralNorthSouthEastWest1912D12KeyAFAF098AFAF094AFAF094AFAF094AFAF0912",
          },
        },
      },
      encryption: {
        constant_initialization_vector: "__stringMin32Max32Pattern09aFAF32",
        encryption_method: "SAMPLE_AES", # accepts SAMPLE_AES, AES_CTR
        initialization_vector_in_manifest: "INCLUDE", # accepts INCLUDE, EXCLUDE
        speke_key_provider: {
          certificate_arn: "__stringPatternArnAwsUsGovAcm",
          dash_signaled_system_ids: ["__stringMin36Max36Pattern09aFAF809aFAF409aFAF409aFAF409aFAF12"],
          hls_signaled_system_ids: ["__stringMin36Max36Pattern09aFAF809aFAF409aFAF409aFAF409aFAF12"],
          resource_id: "__stringPatternW",
          url: "__stringPatternHttps",
        },
        static_key_provider: {
          key_format: "__stringPatternIdentityAZaZ26AZaZ09163",
          key_format_versions: "__stringPatternDD",
          static_key_value: "__stringPatternAZaZ0932",
          url: "__string",
        },
        type: "SPEKE", # accepts SPEKE, STATIC_KEY
      },
      fragment_length: 1,
      image_based_trick_play: "NONE", # accepts NONE, THUMBNAIL, THUMBNAIL_AND_FULLFRAME
      manifest_compression: "GZIP", # accepts GZIP, NONE
      manifest_duration_format: "FLOATING_POINT", # accepts FLOATING_POINT, INTEGER
      min_buffer_time: 1,
      min_final_segment_length: 1.0,
      mpd_profile: "MAIN_PROFILE", # accepts MAIN_PROFILE, ON_DEMAND_PROFILE
      pts_offset_handling_for_b_frames: "ZERO_BASED", # accepts ZERO_BASED, MATCH_INITIAL_PTS
      segment_control: "SINGLE_FILE", # accepts SINGLE_FILE, SEGMENTED_FILES
      segment_length: 1,
      segment_length_control: "EXACT", # accepts EXACT, GOP_MULTIPLE
      stream_inf_resolution: "INCLUDE", # accepts INCLUDE, EXCLUDE
      target_duration_compatibility_mode: "LEGACY", # accepts LEGACY, SPEC_COMPLIANT
      write_dash_manifest: "DISABLED", # accepts DISABLED, ENABLED
      write_hls_manifest: "DISABLED", # accepts DISABLED, ENABLED
      write_segment_timeline_in_representation: "ENABLED", # accepts ENABLED, DISABLED
    }

@!attribute [rw] additional_manifests

By default, the service creates one top-level .m3u8 HLS manifest and
one top -level .mpd DASH manifest for each CMAF output group in your
job. These default manifests reference every output in the output
group. To create additional top-level manifests that reference a
subset of the outputs in the output group, specify a list of them
here. For each additional manifest that you specify, the service
creates one HLS manifest and one DASH manifest.
@return [Array<Types::CmafAdditionalManifest>]

@!attribute [rw] base_url

A partial URI prefix that will be put in the manifest file at the
top level BaseURL element. Can be used if streams are delivered from
a different URL than the manifest file.
@return [String]

@!attribute [rw] client_cache

Disable this setting only when your workflow requires the
#EXT-X-ALLOW-CACHE:no tag. Otherwise, keep the default value Enabled
(ENABLED) and control caching in your video distribution set up. For
example, use the Cache-Control http header.
@return [String]

@!attribute [rw] codec_specification

Specification to use (RFC-6381 or the default RFC-4281) during m3u8
playlist generation.
@return [String]

@!attribute [rw] destination

Use Destination (Destination) to specify the S3 output location and
the output filename base. Destination accepts format identifiers. If
you do not specify the base filename in the URI, the service will
use the filename of the input file. If your job has multiple inputs,
the service uses the filename of the first input file.
@return [String]

@!attribute [rw] destination_settings

Settings associated with the destination. Will vary based on the
type of destination
@return [Types::DestinationSettings]

@!attribute [rw] encryption

DRM settings.
@return [Types::CmafEncryptionSettings]

@!attribute [rw] fragment_length

Specify the length, in whole seconds, of the mp4 fragments. When you
don't specify a value, MediaConvert defaults to 2. Related setting:
Use Fragment length control (FragmentLengthControl) to specify
whether the encoder enforces this value strictly.
@return [Integer]

@!attribute [rw] image_based_trick_play

Specify whether MediaConvert generates images for trick play. Keep
the default value, None (NONE), to not generate any images. Choose
Thumbnail (THUMBNAIL) to generate tiled thumbnails. Choose Thumbnail
and full frame (THUMBNAIL\_AND\_FULLFRAME) to generate tiled
thumbnails and full-resolution images of single frames. When you
enable Write HLS manifest (WriteHlsManifest), MediaConvert creates a
child manifest for each set of images that you generate and adds
corresponding entries to the parent manifest. When you enable Write
DASH manifest (WriteDashManifest), MediaConvert adds an entry in the
.mpd manifest for each set of images that you generate. A common
application for these images is Roku trick mode. The thumbnails and
full-frame images that MediaConvert creates with this feature are
compatible with this Roku specification:
https://developer.roku.com/docs/developer-program/media-playback/trick-mode/hls-and-dash.md
@return [String]

@!attribute [rw] manifest_compression

When set to GZIP, compresses HLS playlist.
@return [String]

@!attribute [rw] manifest_duration_format

Indicates whether the output manifest should use floating point
values for segment duration.
@return [String]

@!attribute [rw] min_buffer_time

Minimum time of initially buffered media that is needed to ensure
smooth playout.
@return [Integer]

@!attribute [rw] min_final_segment_length

Keep this setting at the default value of 0, unless you are
troubleshooting a problem with how devices play back the end of your
video asset. If you know that player devices are hanging on the
final segment of your video because the length of your final segment
is too short, use this setting to specify a minimum final segment
length, in seconds. Choose a value that is greater than or equal to
1 and less than your segment length. When you specify a value for
this setting, the encoder will combine any final segment that is
shorter than the length that you specify with the previous segment.
For example, your segment length is 3 seconds and your final segment
is .5 seconds without a minimum final segment length; when you set
the minimum final segment length to 1, your final segment is 3.5
seconds.
@return [Float]

@!attribute [rw] mpd_profile

Specify whether your DASH profile is on-demand or main. When you
choose Main profile (MAIN\_PROFILE), the service signals
urn:mpeg:dash:profile:isoff-main:2011 in your .mpd DASH manifest.
When you choose On-demand (ON\_DEMAND\_PROFILE), the service signals
urn:mpeg:dash:profile:isoff-on-demand:2011 in your .mpd. When you
choose On-demand, you must also set the output group setting Segment
control (SegmentControl) to Single file (SINGLE\_FILE).
@return [String]

@!attribute [rw] pts_offset_handling_for_b_frames

Use this setting only when your output video stream has B-frames,
which causes the initial presentation time stamp (PTS) to be offset
from the initial decode time stamp (DTS). Specify how MediaConvert
handles PTS when writing time stamps in output DASH manifests.
Choose Match initial PTS (MATCH\_INITIAL\_PTS) when you want
MediaConvert to use the initial PTS as the first time stamp in the
manifest. Choose Zero-based (ZERO\_BASED) to have MediaConvert
ignore the initial PTS in the video stream and instead write the
initial time stamp as zero in the manifest. For outputs that don't
have B-frames, the time stamps in your DASH manifests start at zero
regardless of your choice here.
@return [String]

@!attribute [rw] segment_control

When set to SINGLE\_FILE, a single output file is generated, which
is internally segmented using the Fragment Length and Segment
Length. When set to SEGMENTED\_FILES, separate segment files will be
created.
@return [String]

@!attribute [rw] segment_length

Specify the length, in whole seconds, of each segment. When you
don't specify a value, MediaConvert defaults to 10. Related
settings: Use Segment length control (SegmentLengthControl) to
specify whether the encoder enforces this value strictly. Use
Segment control (CmafSegmentControl) to specify whether MediaConvert
creates separate segment files or one content file that has metadata
to mark the segment boundaries.
@return [Integer]

@!attribute [rw] segment_length_control

Specify how you want MediaConvert to determine the segment length.
Choose Exact (EXACT) to have the encoder use the exact length that
you specify with the setting Segment length (SegmentLength). This
might result in extra I-frames. Choose Multiple of GOP
(GOP\_MULTIPLE) to have the encoder round up the segment lengths to
match the next GOP boundary.
@return [String]

@!attribute [rw] stream_inf_resolution

Include or exclude RESOLUTION attribute for video in
EXT-X-STREAM-INF tag of variant manifest.
@return [String]

@!attribute [rw] target_duration_compatibility_mode

When set to LEGACY, the segment target duration is always rounded up
to the nearest integer value above its current value in seconds.
When set to SPEC\\\\\_COMPLIANT, the segment target duration is
rounded up to the nearest integer value if fraction seconds are
greater than or equal to 0.5 (>= 0.5) and rounded down if less than
0.5 (< 0.5). You may need to use LEGACY if your client needs to
ensure that the target duration is always longer than the actual
duration of the segment. Some older players may experience
interrupted playback when the actual duration of a track in a
segment is longer than the target duration.
@return [String]

@!attribute [rw] write_dash_manifest

When set to ENABLED, a DASH MPD manifest will be generated for this
output.
@return [String]

@!attribute [rw] write_hls_manifest

When set to ENABLED, an Apple HLS manifest will be generated for
this output.
@return [String]

@!attribute [rw] write_segment_timeline_in_representation

When you enable Precise segment duration in DASH manifests
(writeSegmentTimelineInRepresentation), your DASH manifest shows
precise segment durations. The segment duration information appears
inside the SegmentTimeline element, inside SegmentTemplate at the
Representation level. When this feature isn't enabled, the segment
durations in your DASH manifest are approximate. The segment
duration information appears in the duration attribute of the
SegmentTemplate element.
@return [String]

@see docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CmafGroupSettings AWS API Documentation

Constants

SENSITIVE