Struct aws_sdk_mediaconvert::types::HlsGroupSettings

source ·
#[non_exhaustive]
pub struct HlsGroupSettings {
Show 32 fields pub ad_markers: Option<Vec<HlsAdMarkers>>, pub additional_manifests: Option<Vec<HlsAdditionalManifest>>, pub audio_only_header: Option<HlsAudioOnlyHeader>, pub base_url: Option<String>, pub caption_language_mappings: Option<Vec<HlsCaptionLanguageMapping>>, pub caption_language_setting: Option<HlsCaptionLanguageSetting>, pub caption_segment_length_control: Option<HlsCaptionSegmentLengthControl>, pub client_cache: Option<HlsClientCache>, pub codec_specification: Option<HlsCodecSpecification>, pub destination: Option<String>, pub destination_settings: Option<DestinationSettings>, pub directory_structure: Option<HlsDirectoryStructure>, pub encryption: Option<HlsEncryptionSettings>, pub image_based_trick_play: Option<HlsImageBasedTrickPlay>, pub image_based_trick_play_settings: Option<HlsImageBasedTrickPlaySettings>, pub manifest_compression: Option<HlsManifestCompression>, pub manifest_duration_format: Option<HlsManifestDurationFormat>, pub min_final_segment_length: Option<f64>, pub min_segment_length: Option<i32>, pub output_selection: Option<HlsOutputSelection>, pub program_date_time: Option<HlsProgramDateTime>, pub program_date_time_period: Option<i32>, pub progressive_write_hls_manifest: Option<HlsProgressiveWriteHlsManifest>, pub segment_control: Option<HlsSegmentControl>, pub segment_length: Option<i32>, pub segment_length_control: Option<HlsSegmentLengthControl>, pub segments_per_subdirectory: Option<i32>, pub stream_inf_resolution: Option<HlsStreamInfResolution>, pub target_duration_compatibility_mode: Option<HlsTargetDurationCompatibilityMode>, pub timed_metadata_id3_frame: Option<HlsTimedMetadataId3Frame>, pub timed_metadata_id3_period: Option<i32>, pub timestamp_delta_milliseconds: Option<i32>,
}
Expand description

Settings related to your HLS output package. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/outputs-file-ABR.html.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§ad_markers: Option<Vec<HlsAdMarkers>>

Choose one or more ad marker types to decorate your Apple HLS manifest. This setting does not determine whether SCTE-35 markers appear in the outputs themselves.

§additional_manifests: Option<Vec<HlsAdditionalManifest>>

By default, the service creates one top-level .m3u8 HLS manifest for each HLS output group in your job. This default manifest references 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.

§audio_only_header: Option<HlsAudioOnlyHeader>

Ignore this setting unless you are using FairPlay DRM with Verimatrix and you encounter playback issues. Keep the default value, Include, to output audio-only headers. Choose Exclude to remove the audio-only headers from your audio segments.

§base_url: Option<String>

A partial URI prefix that will be prepended to each output in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the main .m3u8 file.

§caption_language_mappings: Option<Vec<HlsCaptionLanguageMapping>>

Language to be used on Caption outputs

§caption_language_setting: Option<HlsCaptionLanguageSetting>

Applies only to 608 Embedded output captions. Insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you specify. Make sure to specify the languages in the order in which they appear in the original source (if the source is embedded format) or the order of the caption selectors (if the source is other than embedded). Otherwise, languages in the manifest will not match up properly with the output captions. None: Include CLOSED-CAPTIONS=NONE line in the manifest. Omit: Omit any CLOSED-CAPTIONS line from the manifest.

§caption_segment_length_control: Option<HlsCaptionSegmentLengthControl>

Set Caption segment length control to Match video to create caption segments that align with the video segments from the first video output in this output group. For example, if the video segments are 2 seconds long, your WebVTT segments will also be 2 seconds long. Keep the default setting, Large segments to create caption segments that are 300 seconds long.

§client_cache: Option<HlsClientCache>

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

§codec_specification: Option<HlsCodecSpecification>

Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist generation.

§destination: Option<String>

Use 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.

§destination_settings: Option<DestinationSettings>

Settings associated with the destination. Will vary based on the type of destination

§directory_structure: Option<HlsDirectoryStructure>

Indicates whether segments should be placed in subdirectories.

§encryption: Option<HlsEncryptionSettings>

DRM settings.

§image_based_trick_play: Option<HlsImageBasedTrickPlay>

Specify whether MediaConvert generates images for trick play. Keep the default value, None, to not generate any images. Choose Thumbnail to generate tiled thumbnails. Choose Thumbnail and full frame to generate tiled thumbnails and full-resolution images of single frames. MediaConvert creates a child manifest for each set of images that you generate and adds corresponding entries to the parent manifest. 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

§image_based_trick_play_settings: Option<HlsImageBasedTrickPlaySettings>

Tile and thumbnail settings applicable when imageBasedTrickPlay is ADVANCED

§manifest_compression: Option<HlsManifestCompression>

When set to GZIP, compresses HLS playlist.

§manifest_duration_format: Option<HlsManifestDurationFormat>

Indicates whether the output manifest should use floating point values for segment duration.

§min_final_segment_length: Option<f64>

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.

§min_segment_length: Option<i32>

When set, Minimum Segment Size is enforced by looking ahead and back within the specified range for a nearby avail and extending the segment size if needed.

§output_selection: Option<HlsOutputSelection>

Indicates whether the .m3u8 manifest file should be generated for this HLS output group.

§program_date_time: Option<HlsProgramDateTime>

Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The value is calculated as follows: either the program date and time are initialized using the input timecode source, or the time is initialized using the input timecode source and the date is initialized using the timestamp_offset.

§program_date_time_period: Option<i32>

Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.

§progressive_write_hls_manifest: Option<HlsProgressiveWriteHlsManifest>

Specify whether MediaConvert generates HLS manifests while your job is running or when your job is complete. To generate HLS manifests while your job is running: Choose Enabled. Use if you want to play back your content as soon as it’s available. MediaConvert writes the parent and child manifests after the first three media segments are written to your destination S3 bucket. It then writes new updated manifests after each additional segment is written. The parent manifest includes the latest BANDWIDTH and AVERAGE-BANDWIDTH attributes, and child manifests include the latest available media segment. When your job completes, the final child playlists include an EXT-X-ENDLIST tag. To generate HLS manifests only when your job completes: Choose Disabled.

§segment_control: Option<HlsSegmentControl>

When set to SINGLE_FILE, emits program as a single media resource (.ts) file, uses #EXT-X-BYTERANGE tags to index segment for playback.

§segment_length: Option<i32>

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 to specify whether the encoder enforces this value strictly. Use Segment control to specify whether MediaConvert creates separate segment files or one content file that has metadata to mark the segment boundaries.

§segment_length_control: Option<HlsSegmentLengthControl>

Specify how you want MediaConvert to determine the segment length. Choose Exact to have the encoder use the exact length that you specify with the setting Segment length. This might result in extra I-frames. Choose Multiple of GOP to have the encoder round up the segment lengths to match the next GOP boundary.

§segments_per_subdirectory: Option<i32>

Specify the number of segments to write to a subdirectory before starting a new one. You must also set Directory structure to Subdirectory per stream for this setting to have an effect.

§stream_inf_resolution: Option<HlsStreamInfResolution>

Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of variant manifest.

§target_duration_compatibility_mode: Option<HlsTargetDurationCompatibilityMode>

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.

§timed_metadata_id3_frame: Option<HlsTimedMetadataId3Frame>

Specify the type of the ID3 frame to use for ID3 timestamps in your output. To include ID3 timestamps: Specify PRIV or TDRL and set ID3 metadata to Passthrough. To exclude ID3 timestamps: Set ID3 timestamp frame type to None.

§timed_metadata_id3_period: Option<i32>

Specify the interval in seconds to write ID3 timestamps in your output. The first timestamp starts at the output timecode and date, and increases incrementally with each ID3 timestamp. To use the default interval of 10 seconds: Leave blank. To include this metadata in your output: Set ID3 timestamp frame type to PRIV or TDRL, and set ID3 metadata to Passthrough.

§timestamp_delta_milliseconds: Option<i32>

Provides an extra millisecond delta offset to fine tune the timestamps.

Implementations§

source§

impl HlsGroupSettings

source

pub fn ad_markers(&self) -> &[HlsAdMarkers]

Choose one or more ad marker types to decorate your Apple HLS manifest. This setting does not determine whether SCTE-35 markers appear in the outputs themselves.

If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .ad_markers.is_none().

source

pub fn additional_manifests(&self) -> &[HlsAdditionalManifest]

By default, the service creates one top-level .m3u8 HLS manifest for each HLS output group in your job. This default manifest references 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.

If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .additional_manifests.is_none().

source

pub fn audio_only_header(&self) -> Option<&HlsAudioOnlyHeader>

Ignore this setting unless you are using FairPlay DRM with Verimatrix and you encounter playback issues. Keep the default value, Include, to output audio-only headers. Choose Exclude to remove the audio-only headers from your audio segments.

source

pub fn base_url(&self) -> Option<&str>

A partial URI prefix that will be prepended to each output in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the main .m3u8 file.

source

pub fn caption_language_mappings(&self) -> &[HlsCaptionLanguageMapping]

Language to be used on Caption outputs

If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .caption_language_mappings.is_none().

source

pub fn caption_language_setting(&self) -> Option<&HlsCaptionLanguageSetting>

Applies only to 608 Embedded output captions. Insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you specify. Make sure to specify the languages in the order in which they appear in the original source (if the source is embedded format) or the order of the caption selectors (if the source is other than embedded). Otherwise, languages in the manifest will not match up properly with the output captions. None: Include CLOSED-CAPTIONS=NONE line in the manifest. Omit: Omit any CLOSED-CAPTIONS line from the manifest.

source

pub fn caption_segment_length_control( &self ) -> Option<&HlsCaptionSegmentLengthControl>

Set Caption segment length control to Match video to create caption segments that align with the video segments from the first video output in this output group. For example, if the video segments are 2 seconds long, your WebVTT segments will also be 2 seconds long. Keep the default setting, Large segments to create caption segments that are 300 seconds long.

source

pub fn client_cache(&self) -> Option<&HlsClientCache>

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

source

pub fn codec_specification(&self) -> Option<&HlsCodecSpecification>

Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist generation.

source

pub fn destination(&self) -> Option<&str>

Use 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.

source

pub fn destination_settings(&self) -> Option<&DestinationSettings>

Settings associated with the destination. Will vary based on the type of destination

source

pub fn directory_structure(&self) -> Option<&HlsDirectoryStructure>

Indicates whether segments should be placed in subdirectories.

source

pub fn encryption(&self) -> Option<&HlsEncryptionSettings>

DRM settings.

source

pub fn image_based_trick_play(&self) -> Option<&HlsImageBasedTrickPlay>

Specify whether MediaConvert generates images for trick play. Keep the default value, None, to not generate any images. Choose Thumbnail to generate tiled thumbnails. Choose Thumbnail and full frame to generate tiled thumbnails and full-resolution images of single frames. MediaConvert creates a child manifest for each set of images that you generate and adds corresponding entries to the parent manifest. 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

source

pub fn image_based_trick_play_settings( &self ) -> Option<&HlsImageBasedTrickPlaySettings>

Tile and thumbnail settings applicable when imageBasedTrickPlay is ADVANCED

source

pub fn manifest_compression(&self) -> Option<&HlsManifestCompression>

When set to GZIP, compresses HLS playlist.

source

pub fn manifest_duration_format(&self) -> Option<&HlsManifestDurationFormat>

Indicates whether the output manifest should use floating point values for segment duration.

source

pub fn min_final_segment_length(&self) -> Option<f64>

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.

source

pub fn min_segment_length(&self) -> Option<i32>

When set, Minimum Segment Size is enforced by looking ahead and back within the specified range for a nearby avail and extending the segment size if needed.

source

pub fn output_selection(&self) -> Option<&HlsOutputSelection>

Indicates whether the .m3u8 manifest file should be generated for this HLS output group.

source

pub fn program_date_time(&self) -> Option<&HlsProgramDateTime>

Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The value is calculated as follows: either the program date and time are initialized using the input timecode source, or the time is initialized using the input timecode source and the date is initialized using the timestamp_offset.

source

pub fn program_date_time_period(&self) -> Option<i32>

Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.

source

pub fn progressive_write_hls_manifest( &self ) -> Option<&HlsProgressiveWriteHlsManifest>

Specify whether MediaConvert generates HLS manifests while your job is running or when your job is complete. To generate HLS manifests while your job is running: Choose Enabled. Use if you want to play back your content as soon as it’s available. MediaConvert writes the parent and child manifests after the first three media segments are written to your destination S3 bucket. It then writes new updated manifests after each additional segment is written. The parent manifest includes the latest BANDWIDTH and AVERAGE-BANDWIDTH attributes, and child manifests include the latest available media segment. When your job completes, the final child playlists include an EXT-X-ENDLIST tag. To generate HLS manifests only when your job completes: Choose Disabled.

source

pub fn segment_control(&self) -> Option<&HlsSegmentControl>

When set to SINGLE_FILE, emits program as a single media resource (.ts) file, uses #EXT-X-BYTERANGE tags to index segment for playback.

source

pub fn segment_length(&self) -> Option<i32>

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 to specify whether the encoder enforces this value strictly. Use Segment control to specify whether MediaConvert creates separate segment files or one content file that has metadata to mark the segment boundaries.

source

pub fn segment_length_control(&self) -> Option<&HlsSegmentLengthControl>

Specify how you want MediaConvert to determine the segment length. Choose Exact to have the encoder use the exact length that you specify with the setting Segment length. This might result in extra I-frames. Choose Multiple of GOP to have the encoder round up the segment lengths to match the next GOP boundary.

source

pub fn segments_per_subdirectory(&self) -> Option<i32>

Specify the number of segments to write to a subdirectory before starting a new one. You must also set Directory structure to Subdirectory per stream for this setting to have an effect.

source

pub fn stream_inf_resolution(&self) -> Option<&HlsStreamInfResolution>

Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of variant manifest.

source

pub fn target_duration_compatibility_mode( &self ) -> Option<&HlsTargetDurationCompatibilityMode>

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.

source

pub fn timed_metadata_id3_frame(&self) -> Option<&HlsTimedMetadataId3Frame>

Specify the type of the ID3 frame to use for ID3 timestamps in your output. To include ID3 timestamps: Specify PRIV or TDRL and set ID3 metadata to Passthrough. To exclude ID3 timestamps: Set ID3 timestamp frame type to None.

source

pub fn timed_metadata_id3_period(&self) -> Option<i32>

Specify the interval in seconds to write ID3 timestamps in your output. The first timestamp starts at the output timecode and date, and increases incrementally with each ID3 timestamp. To use the default interval of 10 seconds: Leave blank. To include this metadata in your output: Set ID3 timestamp frame type to PRIV or TDRL, and set ID3 metadata to Passthrough.

source

pub fn timestamp_delta_milliseconds(&self) -> Option<i32>

Provides an extra millisecond delta offset to fine tune the timestamps.

source§

impl HlsGroupSettings

source

pub fn builder() -> HlsGroupSettingsBuilder

Creates a new builder-style object to manufacture HlsGroupSettings.

Trait Implementations§

source§

impl Clone for HlsGroupSettings

source§

fn clone(&self) -> HlsGroupSettings

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for HlsGroupSettings

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for HlsGroupSettings

source§

fn eq(&self, other: &HlsGroupSettings) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl StructuralPartialEq for HlsGroupSettings

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more