Skip to content

Commit 009743a

Browse files
author
awstools
committed
feat(client-mediaconvert): The AWS Elemental MediaConvert SDK has added support for configurable ID3 eMSG box attributes and the ability to signal them with InbandEventStream tags in DASH and CMAF outputs.
1 parent 8fd2c31 commit 009743a

File tree

9 files changed

+764
-387
lines changed

9 files changed

+764
-387
lines changed

clients/client-mediaconvert/src/commands/GetPolicyCommand.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,8 @@ import {
1414
} from "@aws-sdk/types";
1515

1616
import { MediaConvertClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../MediaConvertClient";
17-
import {
18-
GetPolicyRequest,
19-
GetPolicyRequestFilterSensitiveLog,
20-
GetPolicyResponse,
21-
GetPolicyResponseFilterSensitiveLog,
22-
} from "../models/models_1";
17+
import { GetPolicyRequest, GetPolicyRequestFilterSensitiveLog } from "../models/models_1";
18+
import { GetPolicyResponse, GetPolicyResponseFilterSensitiveLog } from "../models/models_2";
2319
import {
2420
deserializeAws_restJson1GetPolicyCommand,
2521
serializeAws_restJson1GetPolicyCommand,

clients/client-mediaconvert/src/commands/GetPresetCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
GetPresetRequestFilterSensitiveLog,
2020
GetPresetResponse,
2121
GetPresetResponseFilterSensitiveLog,
22-
} from "../models/models_1";
22+
} from "../models/models_2";
2323
import {
2424
deserializeAws_restJson1GetPresetCommand,
2525
serializeAws_restJson1GetPresetCommand,

clients/client-mediaconvert/src/commands/GetQueueCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
GetQueueRequestFilterSensitiveLog,
2020
GetQueueResponse,
2121
GetQueueResponseFilterSensitiveLog,
22-
} from "../models/models_1";
22+
} from "../models/models_2";
2323
import {
2424
deserializeAws_restJson1GetQueueCommand,
2525
serializeAws_restJson1GetQueueCommand,

clients/client-mediaconvert/src/commands/ListJobsCommand.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,12 @@ import {
1414
} from "@aws-sdk/types";
1515

1616
import { MediaConvertClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../MediaConvertClient";
17-
import { ListJobsRequest, ListJobsRequestFilterSensitiveLog } from "../models/models_1";
18-
import { ListJobsResponse, ListJobsResponseFilterSensitiveLog } from "../models/models_2";
17+
import {
18+
ListJobsRequest,
19+
ListJobsRequestFilterSensitiveLog,
20+
ListJobsResponse,
21+
ListJobsResponseFilterSensitiveLog,
22+
} from "../models/models_2";
1923
import {
2024
deserializeAws_restJson1ListJobsCommand,
2125
serializeAws_restJson1ListJobsCommand,

clients/client-mediaconvert/src/models/models_0.ts

Lines changed: 76 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ export enum AacVbrQuality {
160160
*/
161161
export interface AacSettings {
162162
/**
163-
* Choose BROADCASTER_MIXED_AD when the input contains pre-mixed main audio + audio description (AD) as a stereo pair. The value for AudioType will be set to 3, which signals to downstream systems that this stream contains "broadcaster mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the encoder does not perform the mixing. When you choose BROADCASTER_MIXED_AD, the encoder ignores any values you provide in AudioType and FollowInputAudioType. Choose NORMAL when the input does not contain pre-mixed audio + audio description (AD). In this case, the encoder will use any values you provide for AudioType and FollowInputAudioType.
163+
* Choose BROADCASTER_MIXED_AD when the input contains pre-mixed main audio + audio description (AD) as a stereo pair. The value for AudioType will be set to 3, which signals to downstream systems that this stream contains "broadcaster mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the encoder does not perform the mixing. When you choose BROADCASTER_MIXED_AD, the encoder ignores any values you provide in AudioType and FollowInputAudioType. Choose NORMAL when the input does not contain pre-mixed audio + audio description (AD). In this case, the encoder will use any values you provide for AudioType and FollowInputAudioType.
164164
*/
165165
AudioDescriptionBroadcasterMix?: AacAudioDescriptionBroadcasterMix | string;
166166

@@ -175,7 +175,7 @@ export interface AacSettings {
175175
CodecProfile?: AacCodecProfile | string;
176176

177177
/**
178-
* Mono (Audio Description), Mono, Stereo, or 5.1 channel layout. Valid values depend on rate control mode and profile. "1.0 - Audio Description (Receiver Mix)" setting receives a stereo description plus control track and emits a mono AAC encode of the description track, with control data emitted in the PES header as per ETSI TS 101 154 Annex E.
178+
* The Coding mode that you specify determines the number of audio channels and the audio channel layout metadata in your AAC output. Valid coding modes depend on the Rate control mode and Profile that you select. The following list shows the number of audio channels and channel layout for each coding mode. * 1.0 Audio Description (Receiver Mix): One channel, C. Includes audio description data from your stereo input. For more information see ETSI TS 101 154 Annex E. * 1.0 Mono: One channel, C. * 2.0 Stereo: Two channels, L, R. * 5.1 Surround: Five channels, C, L, R, Ls, Rs, LFE.
179179
*/
180180
CodingMode?: AacCodingMode | string;
181181

@@ -190,7 +190,7 @@ export interface AacSettings {
190190
RawFormat?: AacRawFormat | string;
191191

192192
/**
193-
* Sample rate in Hz. Valid values depend on rate control mode and profile.
193+
* Specify the Sample rate in Hz. Valid sample rates depend on the Profile and Coding mode that you select. The following list shows valid sample rates for each Profile and Coding mode. * LC Profile, Coding mode 1.0, 2.0, and Receiver Mix: 8000, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 88200, 96000. * LC Profile, Coding mode 5.1: 32000, 44100, 48000, 96000. * HEV1 Profile, Coding mode 1.0 and Receiver Mix: 22050, 24000, 32000, 44100, 48000. * HEV1 Profile, Coding mode 2.0 and 5.1: 32000, 44100, 48000, 96000. * HEV2 Profile, Coding mode 2.0: 22050, 24000, 32000, 44100, 48000.
194194
*/
195195
SampleRate?: number;
196196

@@ -3676,6 +3676,11 @@ export enum CmafManifestDurationFormat {
36763676
INTEGER = "INTEGER",
36773677
}
36783678

3679+
export enum CmafMpdManifestBandwidthType {
3680+
AVERAGE = "AVERAGE",
3681+
MAX = "MAX",
3682+
}
3683+
36793684
export enum CmafMpdProfile {
36803685
MAIN_PROFILE = "MAIN_PROFILE",
36813686
ON_DEMAND_PROFILE = "ON_DEMAND_PROFILE",
@@ -3706,6 +3711,11 @@ export enum CmafTargetDurationCompatibilityMode {
37063711
SPEC_COMPLIANT = "SPEC_COMPLIANT",
37073712
}
37083713

3714+
export enum CmafVideoCompositionOffsets {
3715+
SIGNED = "SIGNED",
3716+
UNSIGNED = "UNSIGNED",
3717+
}
3718+
37093719
export enum CmafWriteDASHManifest {
37103720
DISABLED = "DISABLED",
37113721
ENABLED = "ENABLED",
@@ -3795,6 +3805,11 @@ export interface CmafGroupSettings {
37953805
*/
37963806
MinFinalSegmentLength?: number;
37973807

3808+
/**
3809+
* Specify how the value for bandwidth is determined for each video Representation in your output MPD manifest. We recommend that you choose a MPD manifest bandwidth type that is compatible with your downstream player configuration. Max: Use the same value that you specify for Max bitrate in the video output, in bits per second. Average: Use the calculated average bitrate of the encoded video output, in bits per second.
3810+
*/
3811+
MpdManifestBandwidthType?: CmafMpdManifestBandwidthType | string;
3812+
37983813
/**
37993814
* 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).
38003815
*/
@@ -3830,6 +3845,11 @@ export interface CmafGroupSettings {
38303845
*/
38313846
TargetDurationCompatibilityMode?: CmafTargetDurationCompatibilityMode | string;
38323847

3848+
/**
3849+
* Specify the video sample composition time offset mode in the output fMP4 TRUN box. For wider player compatibility, set Video composition offsets to Unsigned or leave blank. The earliest presentation time may be greater than zero, and sample composition time offsets will increment using unsigned integers. For strict fMP4 video and audio timing, set Video composition offsets to Signed. The earliest presentation time will be equal to zero, and sample composition time offsets will increment using signed integers.
3850+
*/
3851+
VideoCompositionOffsets?: CmafVideoCompositionOffsets | string;
3852+
38333853
/**
38343854
* When set to ENABLED, a DASH MPD manifest will be generated for this output.
38353855
*/
@@ -3949,6 +3969,11 @@ export interface DashIsoImageBasedTrickPlaySettings {
39493969
TileWidth?: number;
39503970
}
39513971

3972+
export enum DashIsoMpdManifestBandwidthType {
3973+
AVERAGE = "AVERAGE",
3974+
MAX = "MAX",
3975+
}
3976+
39523977
export enum DashIsoMpdProfile {
39533978
MAIN_PROFILE = "MAIN_PROFILE",
39543979
ON_DEMAND_PROFILE = "ON_DEMAND_PROFILE",
@@ -3969,6 +3994,11 @@ export enum DashIsoSegmentLengthControl {
39693994
GOP_MULTIPLE = "GOP_MULTIPLE",
39703995
}
39713996

3997+
export enum DashIsoVideoCompositionOffsets {
3998+
SIGNED = "SIGNED",
3999+
UNSIGNED = "UNSIGNED",
4000+
}
4001+
39724002
export enum DashIsoWriteSegmentTimelineInRepresentation {
39734003
DISABLED = "DISABLED",
39744004
ENABLED = "ENABLED",
@@ -4038,6 +4068,11 @@ export interface DashIsoGroupSettings {
40384068
*/
40394069
MinFinalSegmentLength?: number;
40404070

4071+
/**
4072+
* Specify how the value for bandwidth is determined for each video Representation in your output MPD manifest. We recommend that you choose a MPD manifest bandwidth type that is compatible with your downstream player configuration. Max: Use the same value that you specify for Max bitrate in the video output, in bits per second. Average: Use the calculated average bitrate of the encoded video output, in bits per second.
4073+
*/
4074+
MpdManifestBandwidthType?: DashIsoMpdManifestBandwidthType | string;
4075+
40414076
/**
40424077
* 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).
40434078
*/
@@ -4063,6 +4098,11 @@ export interface DashIsoGroupSettings {
40634098
*/
40644099
SegmentLengthControl?: DashIsoSegmentLengthControl | string;
40654100

4101+
/**
4102+
* Specify the video sample composition time offset mode in the output fMP4 TRUN box. For wider player compatibility, set Video composition offsets to Unsigned or leave blank. The earliest presentation time may be greater than zero, and sample composition time offsets will increment using unsigned integers. For strict fMP4 video and audio timing, set Video composition offsets to Signed. The earliest presentation time will be equal to zero, and sample composition time offsets will increment using signed integers.
4103+
*/
4104+
VideoCompositionOffsets?: DashIsoVideoCompositionOffsets | string;
4105+
40664106
/**
40674107
* If you get an HTTP error in the 400 range when you play back your DASH output, enable this setting and run your transcoding job again. When you enable this setting, the service writes precise segment durations in the DASH manifest. The segment duration information appears inside the SegmentTimeline element, inside SegmentTemplate at the Representation level. When you don't enable this setting, the service writes approximate segment durations in your DASH manifest.
40684108
*/
@@ -4582,6 +4622,11 @@ export enum CmfcKlvMetadata {
45824622
PASSTHROUGH = "PASSTHROUGH",
45834623
}
45844624

4625+
export enum CmfcManifestMetadataSignaling {
4626+
DISABLED = "DISABLED",
4627+
ENABLED = "ENABLED",
4628+
}
4629+
45854630
export enum CmfcScte35Esam {
45864631
INSERT = "INSERT",
45874632
NONE = "NONE",
@@ -4597,6 +4642,11 @@ export enum CmfcTimedMetadata {
45974642
PASSTHROUGH = "PASSTHROUGH",
45984643
}
45994644

4645+
export enum CmfcTimedMetadataBoxVersion {
4646+
VERSION_0 = "VERSION_0",
4647+
VERSION_1 = "VERSION_1",
4648+
}
4649+
46004650
/**
46014651
* These settings relate to the fragmented MP4 container for the segments in your CMAF outputs.
46024652
*/
@@ -4636,6 +4686,11 @@ export interface CmfcSettings {
46364686
*/
46374687
KlvMetadata?: CmfcKlvMetadata | string;
46384688

4689+
/**
4690+
* To add an InbandEventStream element in your output MPD manifest for each type of event message, set Manifest metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the InbandEventStream element schemeIdUri will be "urn:scte:scte35:2013:bin". To leave these elements out of your output MPD manifest, set Manifest metadata signaling to Disabled.
4691+
*/
4692+
ManifestMetadataSignaling?: CmfcManifestMetadataSignaling | string;
4693+
46394694
/**
46404695
* Use this setting only when you specify SCTE-35 markers from ESAM. Choose INSERT to put SCTE-35 markers in this output at the insertion points that you specify in an ESAM XML document. Provide the document in the setting SCC XML (sccXml).
46414696
*/
@@ -4650,6 +4705,24 @@ export interface CmfcSettings {
46504705
* To include ID3 metadata in this output: Set ID3 metadata (timedMetadata) to Passthrough (PASSTHROUGH). Specify this ID3 metadata in Custom ID3 metadata inserter (timedMetadataInsertion). MediaConvert writes each instance of ID3 metadata in a separate Event Message (eMSG) box. To exclude this ID3 metadata: Set ID3 metadata to None (NONE) or leave blank.
46514706
*/
46524707
TimedMetadata?: CmfcTimedMetadata | string;
4708+
4709+
/**
4710+
* Specify the event message box (eMSG) version for ID3 timed metadata in your output.
4711+
* For more information, see ISO/IEC 23009-1:2022 section 5.10.3.3.3 Syntax.
4712+
* Leave blank to use the default value Version 0.
4713+
* When you specify Version 1, you must also set ID3 metadata (timedMetadata) to Passthrough.
4714+
*/
4715+
TimedMetadataBoxVersion?: CmfcTimedMetadataBoxVersion | string;
4716+
4717+
/**
4718+
* Specify the event message box (eMSG) scheme ID URI (scheme_id_uri) for ID3 timed metadata in your output. For more informaiton, see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. Leave blank to use the default value: https://aomedia.org/emsg/ID3 When you specify a value for ID3 metadata scheme ID URI, you must also set ID3 metadata (timedMetadata) to Passthrough.
4719+
*/
4720+
TimedMetadataSchemeIdUri?: string;
4721+
4722+
/**
4723+
* Specify the event message box (eMSG) value for ID3 timed metadata in your output. For more informaiton, see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. When you specify a value for ID3 Metadata Value, you must also set ID3 metadata (timedMetadata) to Passthrough.
4724+
*/
4725+
TimedMetadataValue?: string;
46534726
}
46544727

46554728
export enum ContainerType {
@@ -4728,61 +4801,6 @@ export enum OutputSdt {
47284801
SDT_NONE = "SDT_NONE",
47294802
}
47304803

4731-
/**
4732-
* Use these settings to insert a DVB Service Description Table (SDT) in the transport stream of this output. When you work directly in your JSON job specification, include this object only when your job has a transport stream output and the container settings contain the object M2tsSettings.
4733-
*/
4734-
export interface DvbSdtSettings {
4735-
/**
4736-
* Selects method of inserting SDT information into output stream. "Follow input SDT" copies SDT information from input stream to output stream. "Follow input SDT if present" copies SDT information from input stream to output stream if SDT information is present in the input, otherwise it will fall back on the user-defined values. Enter "SDT Manually" means user will enter the SDT information. "No SDT" means output stream will not contain SDT information.
4737-
*/
4738-
OutputSdt?: OutputSdt | string;
4739-
4740-
/**
4741-
* The number of milliseconds between instances of this table in the output transport stream.
4742-
*/
4743-
SdtInterval?: number;
4744-
4745-
/**
4746-
* The service name placed in the service_descriptor in the Service Description Table. Maximum length is 256 characters.
4747-
*/
4748-
ServiceName?: string;
4749-
4750-
/**
4751-
* The service provider name placed in the service_descriptor in the Service Description Table. Maximum length is 256 characters.
4752-
*/
4753-
ServiceProviderName?: string;
4754-
}
4755-
4756-
/**
4757-
* Use these settings to insert a DVB Time and Date Table (TDT) in the transport stream of this output. When you work directly in your JSON job specification, include this object only when your job has a transport stream output and the container settings contain the object M2tsSettings.
4758-
*/
4759-
export interface DvbTdtSettings {
4760-
/**
4761-
* The number of milliseconds between instances of this table in the output transport stream.
4762-
*/
4763-
TdtInterval?: number;
4764-
}
4765-
4766-
export enum M2tsEbpAudioInterval {
4767-
VIDEO_AND_FIXED_INTERVALS = "VIDEO_AND_FIXED_INTERVALS",
4768-
VIDEO_INTERVAL = "VIDEO_INTERVAL",
4769-
}
4770-
4771-
export enum M2tsEbpPlacement {
4772-
VIDEO_AND_AUDIO_PIDS = "VIDEO_AND_AUDIO_PIDS",
4773-
VIDEO_PID = "VIDEO_PID",
4774-
}
4775-
4776-
export enum M2tsEsRateInPes {
4777-
EXCLUDE = "EXCLUDE",
4778-
INCLUDE = "INCLUDE",
4779-
}
4780-
4781-
export enum M2tsForceTsVideoEbpOrder {
4782-
DEFAULT = "DEFAULT",
4783-
FORCE = "FORCE",
4784-
}
4785-
47864804
/**
47874805
* @internal
47884806
*/
@@ -5533,17 +5551,3 @@ export const F4vSettingsFilterSensitiveLog = (obj: F4vSettings): any => ({
55335551
export const DvbNitSettingsFilterSensitiveLog = (obj: DvbNitSettings): any => ({
55345552
...obj,
55355553
});
5536-
5537-
/**
5538-
* @internal
5539-
*/
5540-
export const DvbSdtSettingsFilterSensitiveLog = (obj: DvbSdtSettings): any => ({
5541-
...obj,
5542-
});
5543-
5544-
/**
5545-
* @internal
5546-
*/
5547-
export const DvbTdtSettingsFilterSensitiveLog = (obj: DvbTdtSettings): any => ({
5548-
...obj,
5549-
});

0 commit comments

Comments
 (0)