Package software.amazon.awscdk.services.medialive.alpha
AWS::MediaLive Construct Library
---
The APIs of higher level constructs in this module are experimental and under active development. They are subject to non-backward compatible changes or removal in any future version. These are not subject to the Semantic Versioning model and breaking changes will be announced in the release notes. This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.
AWS Elemental MediaLive
AWS Elemental MediaLive is a real-time video service that lets you create live outputs for broadcast and streaming delivery.
This package contains constructs for working with AWS Elemental MediaLive, including Inputs, Input Security Groups, Channels, and MediaLive Anywhere resources (Networks, Clusters, Channel Placement Groups, SDI Sources).
For further information on AWS Elemental MediaLive, see the documentation. See supported codecs per output group.
The following example creates an SRT caller input, encodes it to H.264 + AAC, and outputs HLS segments to an S3 bucket:
Stack stack;
IBucket bucket;
Input input = Input.Builder.create(stack, "SrtInput")
.inputName("my-srt-input")
.input(InputConfiguration.srtCaller(List.of(SrtCallerSourceProps.builder()
.srtListenerAddress("203.0.113.10")
.srtListenerPort(5000)
.build())))
.build();
EncodeConfiguration video = EncodeConfiguration.video(VideoEncodeProps.builder()
.name("video_720p")
.codec(VideoCodecSettings.h264(H264SettingsProps.builder()
.rateControl(H264RateControl.cbr(CbrRateControlProps.builder().bitrate(Bitrate.mbps(3)).build()))
.framerate(Framerate.FPS_30)
.build()))
.width(1280)
.height(720)
.build());
EncodeConfiguration audio = EncodeConfiguration.audio(AudioEncodeProps.builder()
.name("audio_aac")
.codec(AudioCodecSettings.aac(AacSettingsProps.builder().bitrate(Bitrate.kbps(192)).build()))
.build());
Channel.Builder.create(stack, "Channel")
.inputs(List.of(InputAttachment.builder().input(input).build()))
.outputGroups(List.of(OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
.name("hls")
.destinations(List.of(OutputDestination.toBucket(bucket, "live/stream")))
.outputs(List.of(HlsOutputDefinition.builder().encodes(List.of(video, audio)).outputName("hls_out").build()))
.build())))
.build();
Input
An input represents the upstream source that feeds a MediaLive channel. Use InputConfiguration factory methods to create different input types.
SRT Caller
MediaLive connects to a remote SRT listener:
Stack stack;
Input.Builder.create(stack, "SrtInput")
.inputName("srt-caller")
.input(InputConfiguration.srtCaller(List.of(SrtCallerSourceProps.builder()
.srtListenerAddress("203.0.113.10")
.srtListenerPort(5000)
.build())))
.build();
SRT Listener
MediaLive listens for an incoming SRT connection. SRT listener inputs require an input security
group. To receive encrypted content, supply a decryption block referencing a Secrets Manager
secret that holds the passphrase — the secret is passed by reference, so MediaLive resolves the ARN
at synth time:
Stack stack;
ISecret passphrase;
InputSecurityGroup sg = InputSecurityGroup.Builder.create(stack, "SrtSg")
.allowlistRules(List.of("203.0.113.0/24"))
.build();
Input.Builder.create(stack, "SrtListenerInput")
.inputName("srt-listener")
.input(InputConfiguration.srtListener(SrtListenerInputProps.builder()
.inputSecurityGroups(List.of(sg))
.minimumLatency(Duration.millis(500))
.streamId("my-stream-id")
.decryption(SrtDecryptionProps.builder()
.algorithm(SrtDecryptionAlgorithm.AES256)
.passphraseSecret(passphrase)
.build())
.build()))
.build();
AWS Elemental MediaConnect Router
Creates a MediaConnect Router Input with automatic encryption:
Stack stack;
Input.Builder.create(stack, "RouterInput")
.inputName("mc-router")
.input(InputConfiguration.mediaConnectRouter())
.build();
An input created this way is the only kind @aws-cdk/aws-mediaconnect-alpha's RouterOutputConfiguration.mediaLiveInput() can deliver to — pointing it at any other input type synths but fails at deploy.
MP4 File from S3
Use InputSource.fromBucket() to reference an S3 object:
Stack stack;
IBucket bucket;
Input.Builder.create(stack, "FileInput")
.inputName("mp4-file")
.input(InputConfiguration.mp4File(List.of(InputSource.fromBucket(bucket, "media/input.mp4"))))
.build();
Importing an Existing Input
Stack stack; IInput input = Input.fromInputArn(stack, "Imported", "arn:aws:medialive:us-east-1:123456789012:input:1234567");
Input Security Group
An input security group controls which IPv4 CIDR blocks can push content to a push-type input.
Stack stack;
InputSecurityGroup sg = InputSecurityGroup.Builder.create(stack, "SG")
.allowlistRules(List.of("203.0.113.0/24"))
.build();
Importing an Existing Input Security Group
Stack stack; IInputSecurityGroup sg = InputSecurityGroup.fromInputSecurityGroupArn(stack, "Imported", "arn:aws:medialive:us-east-1:123456789012:inputSecurityGroup:1234567");
Channel
A channel takes one or more inputs, encodes them, and produces output groups. If no role is provided, the channel auto-creates an IAM role with the medialive.amazonaws.com service principal.
Minimal example — single input, single HLS output:
Stack stack;
IInput input;
IBucket bucket;
EncodeConfiguration video = EncodeConfiguration.video(VideoEncodeProps.builder()
.name("video_720p")
.codec(VideoCodecSettings.h264(H264SettingsProps.builder()
.rateControl(H264RateControl.cbr(CbrRateControlProps.builder().bitrate(Bitrate.mbps(3)).build()))
.framerate(Framerate.FPS_30)
.build()))
.width(1280)
.height(720)
.build());
EncodeConfiguration audio = EncodeConfiguration.audio(AudioEncodeProps.builder()
.name("audio_aac")
.codec(AudioCodecSettings.aac(AacSettingsProps.builder().bitrate(Bitrate.kbps(192)).build()))
.build());
Channel.Builder.create(stack, "Channel")
.inputs(List.of(InputAttachment.builder().input(input).build()))
.outputGroups(List.of(OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
.name("hls")
.destinations(List.of(OutputDestination.toBucket(bucket, "live/stream")))
.outputs(List.of(HlsOutputDefinition.builder().encodes(List.of(video, audio)).outputName("hls_out").build()))
.build())))
.build();
STANDARD Channel with MediaPackage V2
A STANDARD channel runs two pipelines for redundancy. Each output group needs two destinations — one per pipeline.
Stack stack;
IInput input;
IChannel mpChannel;
EncodeConfiguration hdVideo = EncodeConfiguration.video(VideoEncodeProps.builder()
.name("video_1080p")
.codec(VideoCodecSettings.h265(H265SettingsProps.builder()
.rateControl(H265RateControl.qvbr(QvbrRateControlProps.builder()
.maxBitrate(Bitrate.mbps(8))
.qvbrQualityLevel(7)
.build()))
.framerate(Framerate.FPS_30)
.build()))
.width(1920)
.height(1080)
.build());
EncodeConfiguration sdVideo = EncodeConfiguration.video(VideoEncodeProps.builder()
.name("video_480p")
.codec(VideoCodecSettings.h265(H265SettingsProps.builder()
.rateControl(H265RateControl.qvbr(QvbrRateControlProps.builder()
.maxBitrate(Bitrate.mbps(2))
.qvbrQualityLevel(7)
.build()))
.framerate(Framerate.FPS_30)
.build()))
.width(854)
.height(480)
.build());
EncodeConfiguration audio = EncodeConfiguration.audio(AudioEncodeProps.builder()
.name("audio_aac")
.codec(AudioCodecSettings.aac(AacSettingsProps.builder().bitrate(Bitrate.kbps(192)).build()))
.build());
Channel.Builder.create(stack, "Channel")
.channelClass(ChannelClass.STANDARD)
.inputs(List.of(InputAttachment.builder().input(input).build()))
.outputGroups(List.of(OutputGroupConfiguration.mediaPackageV2(MediaPackageV2OutputGroupProps.builder()
.name("emp")
.channel(mpChannel)
.outputs(List.of(MediaPackageV2OutputDefinition.builder().encode(hdVideo).outputName("hd").build(), MediaPackageV2OutputDefinition.builder().encode(sdVideo).outputName("sd").build(), MediaPackageV2OutputDefinition.builder().encode(audio).outputName("audio").build()))
.build())))
.build();
Global Configuration
globalConfiguration sets channel-wide behaviour: how the pipelines are locked together and the output timing source. All fields are optional and fall back to MediaLive defaults.
Stack stack;
IInput input;
IBucket bucket;
EncodeConfiguration video;
EncodeConfiguration audio;
Channel.Builder.create(stack, "Channel")
.inputs(List.of(InputAttachment.builder().input(input).build()))
.timecodeConfig(TimecodeConfig.builder()
.source(TimecodeSource.EMBEDDED)
.build())
.globalConfiguration(GlobalConfiguration.builder()
.outputLocking(OutputLocking.epoch())
.outputTimingSource(OutputTimingSource.INPUT_CLOCK)
.build())
.outputGroups(List.of(OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
.name("hls")
.destinations(List.of(OutputDestination.toBucket(bucket, "live/stream")))
.outputs(List.of(HlsOutputDefinition.builder().encodes(List.of(video, audio)).outputName("hls_out").build()))
.build())))
.build();
Output locking
outputLocking synchronises the frames emitted by a channel's two pipelines. Pick a strategy with
the OutputLocking factory:
OutputLocking.pipeline()— synchronise each pipeline's output to the other. Choose how withmethod:PipelineLockingMethod.SOURCE_TIMECODE(default, needs reliable embedded timecodes) orPipelineLockingMethod.VIDEO_ALIGNMENT(visual content matching, no timecodes required).OutputLocking.epoch()— synchronise to the Unix epoch (optionally acustomEpoch/jamSyncTime). RequiresoutputTimingSource: OutputTimingSource.INPUT_CLOCK(enforced at synth).OutputLocking.disabled()— no synchronisation.
// Video-aligned pipeline locking — useful when sources lack reliable timecodes
OutputLocking locking = OutputLocking.pipeline(PipelineOutputLockingProps.builder()
.method(PipelineLockingMethod.VIDEO_ALIGNMENT)
.build());
Input-loss behavior
inputLossBehavior controls what MediaLive emits when the input is lost: a black period, then a
repeated frame, then either a solid colour or a slate image. Provide the slate as a
FileLocation.
IBucket slateBucket;
InputLossBehavior inputLoss = InputLossBehavior.builder()
.blackFrame(Duration.seconds(1))
.repeatFrame(Duration.seconds(5))
.imageType(InputLossImageType.SLATE)
.imageSlate(FileLocation.fromBucket(slateBucket, "slates/offline.png"))
.build();
File locations
Several channel features reference a file MediaLive reads at runtime — an input-loss slate, an
avail-blanking image, a blackout-slate image, or a burn-in caption font. These all take a
FileLocation, created from an S3 bucket (which auto-grants the channel role read access) or a URL
(with optional SSM-backed credentials):
import software.amazon.awscdk.services.ssm.StringParameter;
IBucket bucket;
StringParameter passwordParam;
// From an S3 bucket — the channel role is granted read access automatically
FileLocation fromS3 = FileLocation.fromBucket(bucket, "assets/slate.png");
// From a URL with optional credentials (SSM parameter read access auto-granted)
FileLocation fromUrl = FileLocation.url("https://origin.example.com/font.ttf", FileLocationOptions.builder()
.username("ingest-user")
.password(passwordParam)
.build());
Color correction
A channel can apply one or more color-space conversions to its video, optionally using a 3D LUT
to remap colors. Each ColorCorrection declares the inputColorSpace to match and the
outputColorSpace to convert to. MediaLive reads the LUT from S3 at runtime, so it must be an S3
location — provide it via Lut.fromBucket() (which uses the secure s3ssl:// form and auto-grants
the channel role read access) or Lut.url() with an s3:///s3ssl:// URL:
Stack stack;
IBucket bucket;
IInput input;
EncodeConfiguration video;
OutputDestination destination;
Channel.Builder.create(stack, "Channel")
.inputs(List.of(InputAttachment.builder().input(input).build()))
.colorCorrections(List.of(ColorCorrection.builder()
.inputColorSpace(ColorSpace.REC_601)
.outputColorSpace(ColorSpace.REC_709)
.lut(Lut.fromBucket(bucket, "luts/rec601-to-rec709.cube"))
.build()))
.outputGroups(List.of(OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
.name("hls")
.destinations(List.of(destination))
.outputs(List.of(HlsOutputDefinition.builder().encodes(List.of(video)).outputName("video").build()))
.build())))
.build();
Encode Configuration
Use EncodeConfiguration.video(), EncodeConfiguration.audio(), and EncodeConfiguration.caption() to define encodes.
Video
// H.264
EncodeConfiguration h264 = EncodeConfiguration.video(VideoEncodeProps.builder()
.name("h264_720p")
.codec(VideoCodecSettings.h264(H264SettingsProps.builder()
.rateControl(H264RateControl.cbr(CbrRateControlProps.builder().bitrate(Bitrate.mbps(3)).build()))
.framerate(Framerate.FPS_30)
.profile(H264Profile.HIGH)
.build()))
.width(1280)
.height(720)
.build());
// H.265
EncodeConfiguration h265 = EncodeConfiguration.video(VideoEncodeProps.builder()
.name("h265_1080p")
.codec(VideoCodecSettings.h265(H265SettingsProps.builder()
.rateControl(H265RateControl.qvbr(QvbrRateControlProps.builder()
.maxBitrate(Bitrate.mbps(5))
.qvbrQualityLevel(7)
.build()))
.framerate(Framerate.FPS_30)
.profile(H265Profile.MAIN)
.tier(H265Tier.HIGH)
.build()))
.width(1920)
.height(1080)
.build());
Video codecs accept optional overrides for adaptive quantization, scene-change detection, color space, and more. See the props interfaces for the full list:
EncodeConfiguration hdr = EncodeConfiguration.video(VideoEncodeProps.builder()
.name("h265_hdr")
.codec(VideoCodecSettings.h265(H265SettingsProps.builder()
.rateControl(H265RateControl.qvbr(QvbrRateControlProps.builder().maxBitrate(Bitrate.mbps(8)).qvbrQualityLevel(8).build()))
.framerate(Framerate.FPS_30)
.sceneChangeDetect(H265SceneChangeDetect.ENABLED)
.colorSpaceSettings(H265ColorSpaceSettings.hlg2020())
.build()))
.width(1920)
.height(1080)
.build());
Audio
// AAC stereo
EncodeConfiguration aac = EncodeConfiguration.audio(AudioEncodeProps.builder()
.name("aac_stereo")
.codec(AudioCodecSettings.aac(AacSettingsProps.builder()
.bitrate(Bitrate.kbps(192))
.codingMode(AacCodingMode.CODING_MODE_2_0)
.build()))
.build());
// AC3 5.1
EncodeConfiguration ac3 = EncodeConfiguration.audio(AudioEncodeProps.builder()
.name("ac3_surround")
.codec(AudioCodecSettings.ac3(Ac3SettingsProps.builder()
.bitrate(Bitrate.kbps(384))
.codingMode(Ac3CodingMode.CODING_MODE_3_2_LFE)
.build()))
.build());
Caption
A caption encode converts a source caption track (referenced by captionSelectorName) to an
output format via the CaptionDestination factory. One selector can feed multiple encodes:
// Define a caption selector on the input attachment (see Input Attachment Settings below)
CaptionSelector captionSelector = CaptionSelector.embedded("captions");
// WebVTT captions — packaged alongside the video encode in the same output
EncodeConfiguration webvtt = EncodeConfiguration.caption(CaptionEncodeProps.builder()
.name("eng_webvtt")
.captionSelectorName(captionSelector.getName())
.languageCode("eng")
.languageDescription("English")
.destination(CaptionDestination.webvtt())
.build());
// Burned-in captions — rendered into the video, styled via the burn-in options
EncodeConfiguration burnIn = EncodeConfiguration.caption(CaptionEncodeProps.builder()
.name("eng_burnin")
.captionSelectorName(captionSelector.getName())
.destination(CaptionDestination.burnIn(BurnInDestinationProps.builder()
.alignment(CaptionAlignment.CENTERED)
.fontColor(CaptionFontColor.WHITE)
.outlineColor(CaptionOutlineColor.BLACK)
.fontSize(CaptionFontSize.AUTO)
.build()))
.build());
Cross-service integrations
| Destination | MediaLive side | Other side | Package |
|---|---|---|---|
| MediaPackage V2 | medialive.OutputGroupConfiguration.mediaPackageV2() | mediapackagev2.Channel | @aws-cdk/aws-mediapackagev2-alpha |
| MediaConnect Router (output) | medialive.OutputGroupConfiguration.mediaConnectRouter() | mediaconnect.RouterInputConfiguration.mediaLiveChannel() | @aws-cdk/aws-mediaconnect-alpha |
| MediaConnect Router (input) | medialive.InputConfiguration.mediaConnectRouter() | mediaconnect.RouterOutputConfiguration.mediaLiveInput() | @aws-cdk/aws-mediaconnect-alpha |
AWS Elemental MediaPackage V2
Use mediaPackageV2() and pass a single channel — MediaLive maps each pipeline to a MediaPackage ingest endpoint automatically (one for SINGLE_PIPELINE, both for STANDARD). Each output contains a single encode (one track per output).
In-band captions (burn-in, embedded) ride alongside a video encode via the captions prop:
IChannel mpChannel;
EncodeConfiguration hdVideo;
EncodeConfiguration sdVideo;
EncodeConfiguration audio;
EncodeConfiguration burnIn;
OutputGroupConfiguration.mediaPackageV2(MediaPackageV2OutputGroupProps.builder()
.name("emp")
.channel(mpChannel)
.outputs(List.of(MediaPackageV2OutputDefinition.builder().encode(hdVideo).captions(List.of(burnIn)).outputName("hd").build(), MediaPackageV2OutputDefinition.builder().encode(sdVideo).outputName("sd").build(), MediaPackageV2OutputDefinition.builder().encode(audio).outputName("audio").build()))
.build());
For per-pipeline control — for example pinning pipeline 0 to a specific endpoint, or delivering each pipeline to a different (cross-region) channel — use mediaPackageV2PerPipeline() with explicit destinations:
IChannel primary;
EncodeConfiguration hdVideo;
OutputGroupConfiguration.mediaPackageV2PerPipeline(MediaPackageV2PerPipelineOutputGroupProps.builder()
.name("emp")
.destinations(List.of(MediaPackageV2Destination.channel(primary, MediaPackageV2EndpointId.ENDPOINT_2), MediaPackageV2Destination.channel(primary, MediaPackageV2EndpointId.ENDPOINT_1)))
.outputs(List.of(MediaPackageV2OutputDefinition.builder().encode(hdVideo).outputName("hd").build()))
.build());
HLS
Use OutputDestination.url() for HTTP origins or OutputDestination.toBucket() for S3:
IBucket bucket;
EncodeConfiguration video;
EncodeConfiguration audio;
// HLS to S3
OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
.name("hls_s3")
.destinations(List.of(OutputDestination.toBucket(bucket, "live/stream")))
.outputs(List.of(HlsOutputDefinition.builder().encodes(List.of(video, audio)).outputName("hls_out").build()))
.build());
// HLS to an HTTPS CDN origin.
OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
.name("hls-http")
.destinations(List.of(OutputDestination.url("https://203.0.113.10/ingest/stream")))
.hlsCdnSettings(HlsCdnSettings.basicPut())
.outputs(List.of(HlsOutputDefinition.builder().encodes(List.of(video, audio)).outputName("hls_out").build()))
.build());
Archive
Archive outputs write long-form recordings to S3:
IBucket bucket;
EncodeConfiguration video;
EncodeConfiguration audio;
OutputGroupConfiguration.archive(ArchiveOutputGroupProps.builder()
.name("archive")
.destinations(List.of(S3OutputDestination.toBucket(bucket, "archive/recording")))
.rolloverInterval(Duration.seconds(600))
.outputs(List.of(ArchiveOutputDefinition.builder().encodes(List.of(video, audio)).outputName("archive_out").build()))
.build());
RTMP
RTMP outputs support H.264 + AAC only. Each output takes one destination per channel pipeline (the console's "Destination A" / "Destination B") via RtmpDestination.url() — one for SINGLE_PIPELINE, two for STANDARD:
EncodeConfiguration video;
EncodeConfiguration audio;
OutputGroupConfiguration.rtmp(RtmpOutputGroupProps.builder()
.name("social")
.outputs(List.of(RtmpOutputDefinition.builder()
.encodes(List.of(video, audio))
.outputName("live")
.destinations(List.of(RtmpDestination.url("rtmp://rtmp.example.com/live", "your-stream-key")))
.build()))
.build());
SRT
SRT outputs use SrtDestination.caller() for caller mode or SrtDestination.listener() for listener mode. When you already have a full SRT URL rather than a separate host and port, use SrtDestination.callerUrl(). SRT output is always encrypted, so every destination takes an encryptionPassphraseSecret (a Secrets Manager secret). Each output takes one destination per channel pipeline ("Destination A"/"Destination B") — one for SINGLE_PIPELINE, two for STANDARD:
EncodeConfiguration video;
EncodeConfiguration audio;
ISecret passphrase;
// SRT caller to a remote listener
OutputGroupConfiguration.srt(SrtOutputGroupProps.builder()
.name("srt_out")
.outputs(List.of(SrtOutputDefinition.builder()
.encodes(List.of(video, audio))
.outputName("srt_caller")
.destinations(List.of(SrtDestination.caller(SrtCallerDestinationProps.builder()
.address("203.0.113.20")
.port(5000)
.encryptionPassphraseSecret(passphrase)
.build())))
.build()))
.build());
// SRT listener — MediaLive waits for the downstream system to connect
OutputGroupConfiguration.srt(SrtOutputGroupProps.builder()
.name("srt_listen")
.outputs(List.of(SrtOutputDefinition.builder()
.encodes(List.of(video, audio))
.outputName("srt_listener")
.destinations(List.of(SrtDestination.listener(SrtListenerDestinationProps.builder()
.listenerPort(5000)
.encryptionPassphraseSecret(passphrase)
.build())))
.build()))
.build());
AWS Elemental MediaConnect Router
mediaConnectRouter() delivers each channel pipeline to an AWS Elemental MediaConnect Router. Transit encryption defaults to AUTOMATIC; CDK derives one destination per pipeline from the channel class, so the common case needs no per-pipeline configuration. You must specify availabilityZones — exactly one for a SINGLE_PIPELINE channel, or two (one per pipeline) for STANDARD. The downstream wiring — which router input each pipeline feeds — is configured on the MediaConnect side, referencing this group's output by name and pipeline id.
EncodeConfiguration video;
EncodeConfiguration audio;
ISecret passphrase;
ISecret passphrase1;
// AUTOMATIC encryption on every pipeline (MPEG-TS container, like UDP)
OutputGroupConfiguration.mediaConnectRouter(MediaConnectRouterOutputGroupProps.builder()
.name("router_out")
.availabilityZones(List.of("us-east-1a"))
.outputs(List.of(MediaConnectRouterOutputDefinition.builder().encodes(List.of(video, audio)).outputName("router_ts").build()))
.build());
// One shared Secrets Manager passphrase across all pipelines (SECRETS_MANAGER encryption)
OutputGroupConfiguration.mediaConnectRouter(MediaConnectRouterOutputGroupProps.builder()
.name("router_out")
.availabilityZones(List.of("us-east-1a"))
.routerSettings(MediaConnectRouterSettings.shared(MediaConnectRouterPipelineConfig.builder().encryptionSecret(passphrase).build()))
.outputs(List.of(MediaConnectRouterOutputDefinition.builder().encodes(List.of(video, audio)).outputName("router_ts").build()))
.build());
// Distinct encryption per pipeline — an omitted pipeline stays AUTOMATIC (STANDARD channels)
OutputGroupConfiguration.mediaConnectRouter(MediaConnectRouterOutputGroupProps.builder()
.name("router_out")
.availabilityZones(List.of("us-east-1a", "us-east-1b"))
.routerSettings(MediaConnectRouterSettings.perPipeline(MediaConnectRouterPerPipelineSettings.builder()
.pipeline1(MediaConnectRouterPipelineConfig.builder().encryptionSecret(passphrase1).build())
.build()))
.outputs(List.of(MediaConnectRouterOutputDefinition.builder().encodes(List.of(video, audio)).outputName("router_ts").build()))
.build());
When a passphrase secret is supplied, the channel's IAM role is automatically granted read access to it.
UDP
UDP outputs deliver MPEG-TS over UDP or RTP. Use UdpOutputDestination.udp() for plain UDP or .rtp() for RTP (required if using FEC):
EncodeConfiguration video;
EncodeConfiguration audio;
OutputGroupConfiguration.udp(UdpOutputGroupProps.builder()
.name("udp_out")
.destinations(List.of(UdpOutputDestination.udp(TransportOutputDestinationProps.builder().address("203.0.113.5").port(5000).build())))
.outputs(List.of(UdpOutputDefinition.builder().encodes(List.of(video, audio)).outputName("ts_out").build()))
.build());
Frame Capture
Frame capture outputs write periodic JPEG snapshots to S3:
IBucket bucket;
EncodeConfiguration video;
OutputGroupConfiguration.frameCapture(FrameCaptureOutputGroupProps.builder()
.name("thumbnails")
.destinations(List.of(S3OutputDestination.toBucket(bucket, "thumbnails/live")))
.outputs(List.of(FrameCaptureOutputDefinition.builder().encodes(List.of(video)).outputName("thumb").build()))
.build());
Microsoft Smooth Streaming
MS Smooth outputs push fragmented MP4 to an IIS Smooth Streaming endpoint:
EncodeConfiguration video;
EncodeConfiguration audio;
OutputGroupConfiguration.msSmooth(MsSmoothOutputGroupProps.builder()
.name("smooth")
.destinations(List.of(OutputDestination.url("https://smooth.example.com/live")))
.outputs(List.of(MsSmoothOutputDefinition.builder().encodes(List.of(video, audio)).outputName("smooth_out").build()))
.build());
Per-output HLS settings
HLS outputs accept per-output hlsSettings via the HlsSettings factory — standard() for a video
rendition (with optional M3u8Settings for the transport stream), audioOnly() for an audio
rendition (with optional cover art as a FileLocation), fmp4(), or
frameCapture().
IBucket bucket;
EncodeConfiguration video;
EncodeConfiguration audio;
OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
.name("hls")
.destinations(List.of(OutputDestination.toBucket(bucket, "live/stream")))
.outputs(List.of(HlsOutputDefinition.builder()
.encodes(List.of(video))
.outputName("video")
.hlsSettings(HlsSettings.standard(StandardHlsSettingsProps.builder()
.m3u8Settings(M3u8Settings.of(M3u8SettingsProps.builder()
.scte35Behavior(M3u8Scte35Behavior.PASSTHROUGH)
.programNum(1)
.build()))
.build()))
.build(), HlsOutputDefinition.builder()
.encodes(List.of(audio))
.outputName("audio")
.hlsSettings(HlsSettings.audioOnly(AudioOnlyHlsSettingsProps.builder()
.audioGroupId("program")
.audioOnlyImage(FileLocation.fromBucket(bucket, "art/cover.png"))
.build()))
.build()))
.build());
Forward Error Correction (UDP)
UDP outputs accept optional fec settings (SMPTE 2022-1) — column-only or column-and-row FEC.
FEC requires an rtp:// destination:
EncodeConfiguration video;
OutputGroupConfiguration.udp(UdpOutputGroupProps.builder()
.name("udp")
.destinations(List.of(UdpOutputDestination.rtp(TransportOutputDestinationProps.builder().address("203.0.113.5").port(5000).build())))
.outputs(List.of(UdpOutputDefinition.builder()
.encodes(List.of(video))
.outputName("ts")
.fec(FecOutputSettings.builder().mode(FecMode.COLUMN_AND_ROW).columnDepth(10).rowLength(10).build())
.build()))
.build());
MPEG-TS Container Settings
The MPEG-TS output groups — udp(), archive(), srt(), and mediaConnectRouter() — accept optional per-output m2tsSettings via M2tsSettings.of(). Omit it to use MediaLive's service defaults. Bitrates use Bitrate, intervals use Duration, and closed-value fields use enums (e.g. M2tsRateMode, M2tsScte35Control); PID fields are strings that accept decimal, hexadecimal, ranges, or comma-separated lists.
EncodeConfiguration video;
EncodeConfiguration audio;
OutputGroupConfiguration.udp(UdpOutputGroupProps.builder()
.name("udp_out")
.destinations(List.of(UdpOutputDestination.udp(TransportOutputDestinationProps.builder().address("203.0.113.5").port(5000).build())))
.outputs(List.of(UdpOutputDefinition.builder()
.encodes(List.of(video, audio))
.outputName("ts")
.m2tsSettings(M2tsSettings.of(M2tsSettingsProps.builder()
.bitrate(Bitrate.mbps(8))
.rateMode(M2tsRateMode.VBR)
.programNum(1)
.patInterval(Duration.millis(100))
.pmtInterval(Duration.millis(100))
.scte35Control(M2tsScte35Control.PASSTHROUGH)
.dvbSdtSettings(DvbSdtSettings.builder()
.outputSdt(DvbSdtOutputMode.SDT_MANUAL)
.serviceName("My Service")
.repInterval(Duration.millis(2000))
.build())
.build()))
.build()))
.build());
Destinations
Each output group type uses a specific destination class. Destinations are created via static factory methods:
| Destination class | Factory methods | Used by |
|---|---|---|
| OutputDestination | url(), toBucket() | HLS, MS Smooth, CMAF Ingest |
| S3OutputDestination | url(), toBucket() | Archive, Frame Capture |
| UdpOutputDestination | udp(), rtp(), url() | UDP |
| MediaPackageV2Destination | channel() | MediaPackage V2 |
| RtmpDestination | url() | RTMP |
| SrtDestination | caller(), callerUrl(), listener() | SRT |
OutputDestination.toBucket() (and S3OutputDestination.toBucket()) build canonical s3ssl:// URLs and automatically grant the channel's IAM role the required S3 permissions; InputSource.fromBucket() does the same for input reads. MediaPackageV2Destination.channel() automatically grants ingest permissions on the MediaPackage V2 channel.
The MediaConnect Router output group has no destination class — its delivery is configured on the MediaConnect side. Per-pipeline transit encryption is set via the group's routerSettings prop using MediaConnectRouterSettings.shared() / .perPipeline() (see MediaConnect Router above).
Additional Destinations
MediaPackage V2 and CMAF Ingest output groups support additionalDestinations for cross-region delivery or backup packaging. These are separate from pipeline redundancy — they fan out the same content to extra endpoints.
The region for each destination is resolved automatically from the channel's stack. For cross-region imports, pass the region explicitly:
IChannel primaryChannel;
EncodeConfiguration video;
EncodeConfiguration audio;
// Import a channel from another region — the region travels with the channel
IChannel backupChannel = Channel.fromChannelAttributes(this, "BackupChannel", ChannelAttributes.builder()
.channelName("backup-channel")
.channelGroupName("backup-group")
.region("us-west-2")
.build());
OutputGroupConfiguration.mediaPackageV2(MediaPackageV2OutputGroupProps.builder()
.name("emp")
.channel(primaryChannel)
.additionalDestinations(List.of(MediaPackageV2Destination.channel(backupChannel, MediaPackageV2EndpointId.ENDPOINT_1)))
.outputs(List.of(MediaPackageV2OutputDefinition.builder().encode(video).outputName("video").build(), MediaPackageV2OutputDefinition.builder().encode(audio).outputName("audio").build()))
.build());
Pipeline Redundancy
Channels default to SINGLE_PIPELINE. Set channelClass: ChannelClass.STANDARD for two-pipeline redundancy.
When using STANDARD:
- Each output group's
destinationsarray must have two entries —destinations[0]maps to Pipeline 0,destinations[1]maps to Pipeline 1. - For MediaPackage V2, use
ENDPOINT_1for Pipeline 0 andENDPOINT_2for Pipeline 1. additionalDestinationsare separate from pipeline redundancy — they fan out to extra endpoints.
Stack stack;
IInput input;
IBucket bucket;
EncodeConfiguration video;
EncodeConfiguration audio;
Channel.Builder.create(stack, "StandardChannel")
.channelClass(ChannelClass.STANDARD)
.inputs(List.of(InputAttachment.builder().input(input).build()))
.outputGroups(List.of(OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
.name("hls")
.destinations(List.of(OutputDestination.toBucket(bucket, "live/pipeline0"), OutputDestination.toBucket(bucket, "live/pipeline1")))
.outputs(List.of(HlsOutputDefinition.builder().encodes(List.of(video, audio)).outputName("hls_out").build()))
.build())))
.build();
Input Attachment Settings
Each entry in inputs is an input attachment, which can carry per-input extraction and connection
settings beyond the input itself.
Selectors pick specific tracks out of the input. Use AudioSelector (byLanguage(), byPid(),
byTrack(), hlsRendition(), default()), CaptionSelector (byLanguage(), embedded(),
ancillary(), dvbSub(), scte27(), teletext(), arib()), and videoSelector (color space,
HDR10 metadata, and program/PID selection via VideoSelection). A caption encode then references a
caption selector by name.
Stack stack;
IInput input;
IBucket bucket;
EncodeConfiguration video;
Channel.Builder.create(stack, "Channel")
.inputs(List.of(InputAttachment.builder()
.input(input)
.audioSelectors(List.of(AudioSelector.byLanguage("eng", "eng", AudioLanguageSelectionPolicy.STRICT)))
.captionSelectors(List.of(CaptionSelector.embedded("embedded")))
.videoSelector(VideoSelectorSettings.builder()
.colorSpace(VideoColorSpace.HDR10)
.colorSpaceUsage(VideoColorSpaceUsage.FORCE)
.selectBy(VideoSelection.byProgramId(1))
.build())
.build()))
.outputGroups(List.of(OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
.name("hls")
.destinations(List.of(OutputDestination.toBucket(bucket, "live/stream")))
.outputs(List.of(HlsOutputDefinition.builder().encodes(List.of(video)).outputName("hls_out").build()))
.build())))
.build();
Network input settings apply to URL-pull and multicast inputs — HLS bandwidth/buffer/retry
behaviour, the SCTE-35 source (HlsScte35Source.SEGMENTS or MANIFEST), HTTPS server validation,
and a multicast source IP for source-specific multicast. logicalInterfaceNames maps the input to
network interfaces on MediaLive Anywhere nodes.
Stack stack;
IInput input;
IBucket bucket;
EncodeConfiguration video;
Channel.Builder.create(stack, "Channel")
.inputs(List.of(InputAttachment.builder()
.input(input)
.networkInputSettings(NetworkInputSettings.builder()
.serverValidation(ServerValidation.CHECK_CRYPTOGRAPHY_AND_VALIDATE_NAME)
.hlsInputSettings(HlsInputSettings.builder()
.bandwidth(Bitrate.mbps(5))
.scte35Source(HlsScte35Source.MANIFEST)
.build())
.build())
.logicalInterfaceNames(List.of("eth0", "eth1"))
.build()))
.outputGroups(List.of(OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
.name("hls")
.destinations(List.of(OutputDestination.toBucket(bucket, "live/stream")))
.outputs(List.of(HlsOutputDefinition.builder().encodes(List.of(video)).outputName("hls_out").build()))
.build())))
.build();
Automatic Input Failover
Automatic input failover gives you input-source redundancy: attach a secondary input, and
MediaLive switches to it without restarting the channel when the active input meets a failover
condition. This is separate from the pipeline redundancy of ChannelClass.STANDARD (which
duplicates a single source across two pipelines).
Provide automaticInputFailover on the input attachment. If you don't specify conditions, a
single input-loss condition is used:
Stack stack;
IInput primaryInput;
IInput secondaryInput;
AudioSelector audioSelector;
EncodeConfiguration video;
EncodeConfiguration audio;
IBucket bucket;
Channel.Builder.create(stack, "Channel")
.inputs(List.of(InputAttachment.builder()
.input(primaryInput)
.automaticInputFailover(AutomaticInputFailover.builder()
.secondaryInput(secondaryInput)
.inputPreference(InputPreference.PRIMARY_INPUT_PREFERRED)
.errorClearTime(Duration.seconds(3))
.failoverConditions(List.of(FailoverCondition.inputLoss(InputLossFailoverProps.builder().threshold(Duration.millis(1500)).build()), FailoverCondition.audioSilence(AudioSilenceFailoverProps.builder().audioSelector(audioSelector).threshold(Duration.seconds(2)).build()), FailoverCondition.videoBlack(VideoBlackFailoverProps.builder().blackDetectThreshold(0.1).threshold(Duration.seconds(1)).build())))
.build())
.build(), InputAttachment.builder()
// The secondary input must also be attached to the channel as its own input.
.input(secondaryInput)
.build()))
.outputGroups(List.of(OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
.name("hls")
.destinations(List.of(OutputDestination.toBucket(bucket, "live/stream")))
.outputs(List.of(HlsOutputDefinition.builder().encodes(List.of(video, audio)).outputName("hls_out").build()))
.build())))
.build();
The primary and secondary inputs must have the same input class. The channel's IAM role is granted read access to the secondary input's sources automatically, just like the primary.
Ad Avail Handling
MediaLive can blank content during ad avails, insert blackout slates, and signal SCTE-35 ad avails to downstream systems. These are all channel-level props.
availBlanking replaces video/audio/captions with black (or an image) during an ad avail, and
blackoutSlate shows a slate when a SCTE-35 blackout is signalled. Both image fields take a
FileLocation.
Stack stack;
IInput input;
IBucket bucket;
EncodeConfiguration video;
Channel.Builder.create(stack, "Channel")
.inputs(List.of(InputAttachment.builder().input(input).build()))
.availBlanking(AvailBlanking.builder()
.state(AvailBlankingState.ENABLED)
.image(FileLocation.fromBucket(bucket, "slates/avail.png"))
.build())
.blackoutSlate(BlackoutSlate.builder()
.state(BlackoutSlateState.ENABLED)
.image(FileLocation.fromBucket(bucket, "slates/blackout.png"))
.build())
.outputGroups(List.of(OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
.name("hls")
.destinations(List.of(OutputDestination.toBucket(bucket, "live/stream")))
.outputs(List.of(HlsOutputDefinition.builder().encodes(List.of(video)).outputName("hls_out").build()))
.build())))
.build();
availSettings selects how SCTE-35 ad avails are handled — AvailSettings.spliceInsert(),
AvailSettings.timeSignalApos(), or AvailSettings.esam() for Event Signaling and Management
against an external POIS endpoint. scte35SegmentationScope controls which output groups receive
the segmentation cues. The ESAM POIS password is supplied as an SSM parameter, and the channel role
is granted read access to it automatically.
import software.amazon.awscdk.services.ssm.StringParameter;
Stack stack;
IInput input;
IBucket bucket;
EncodeConfiguration video;
StringParameter poisPassword;
Channel.Builder.create(stack, "Channel")
.inputs(List.of(InputAttachment.builder().input(input).build()))
.availSettings(AvailSettings.esam(EsamSettings.builder()
.pois(PoisEndpoint.builder()
.url("https://pois.example.com/esam")
.username("pois-user")
.password(poisPassword)
.build())
.acquisitionPointId("acquisition-point-1")
.adAvailOffset(Duration.millis(200))
.build()))
.scte35SegmentationScope(Scte35SegmentationScope.SCTE35_ENABLED_OUTPUT_GROUPS)
.outputGroups(List.of(OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
.name("hls")
.destinations(List.of(OutputDestination.toBucket(bucket, "live/stream")))
.outputs(List.of(HlsOutputDefinition.builder().encodes(List.of(video)).outputName("hls_out").build()))
.build())))
.build();
Auto-Created Role and Grants
When no role is provided, the channel auto-creates an IAM role with the medialive.amazonaws.com service principal and grants it only the permissions your configuration actually needs. These automatic grants apply only to the channel-managed role; if you bring your own role, none are added.
Channel role grants — wired based on what you configure (channel-managed role only):
| Configuration | Grant | Scope |
|---|---|---|
| OutputDestination.toBucket() | S3 read/write | The destination bucket/prefix |
| InputSource.fromBucket() | S3 read | The input source bucket/prefix |
| MediaPackageV2Destination.channel() | mediapackagev2:PutObject | The MediaPackage V2 channel |
| SrtDestination with an encryption secret | Secrets Manager read | The secret |
| URL pull input with a password parameter | SSM parameter read | The parameter |
| Thumbnails (on by default) | s3:PutObject | * — uploads to an AWS service-owned bucket |
| Channel logging (logLevel set) | CloudWatch Logs write | The ElementalMediaLive log group in your account/region |
| VPC output (vpc set) | EC2 ENI create/delete + describe | Scoped to your subnets/SGs; Describe* requires * |
Input role grants — separate from the channel role, used at input create/delete time. Like the channel role, these are added only when the input auto-creates its role; pass a role to mediaConnect() or cdi() and no grants are added:
| Input type | Grant | Scope |
|---|---|---|
| InputConfiguration.mediaConnect() | mediaconnect:ManagedDescribeFlow, ManagedAddOutput, ManagedRemoveOutput | * — service rejects flow-scoped grants |
| InputConfiguration.cdi() | EC2 ENI create/delete + describe | Scoped to your subnets/SGs; Describe* requires * |
Both channel and input auto-created roles include confused-deputy prevention (aws:SourceAccount + aws:SourceArn conditions). For the full list of trusted-entity requirements, see the documentation.
The auto-created role is available on channel.role if you need to add further permissions.
Bringing your pre-defined role
When you pass a role, the channel makes no automatic grants — you will need to add the permissions that role needs. That covers both the principal policy and any referenced resource policies: S3 output destinations and input sources, Secrets Manager and SSM reads, MediaPackage V2 ingest, CloudWatch Logs, and VPC output ENI management. See the trusted-entity requirements, or pass the account's MediaLiveAccessRole — an IAM role that MediaLive can assume.
CloudWatch Metrics
Channels expose CloudWatch metric helpers in the AWS/MediaLive namespace, dimensioned by ChannelId and Pipeline. Use the named helpers below for the most common metrics, or metric(metricName, pipeline) to access any metric documented by the MediaLive metrics reference.
MediaLive publishes metrics per pipeline. Every helper takes a Pipeline argument so you make an explicit decision about which pipeline you're monitoring. STANDARD channels run two redundant pipelines (PIPELINE_0, PIPELINE_1) — alarm on both to cover the full channel. SINGLE_PIPELINE channels only publish on PIPELINE_0; passing PIPELINE_1 throws at synth time.
Channel channel;
Stack stack;
channel.metricDroppedFrames(Pipeline.PIPELINE_0).createAlarm(stack, "DroppedFrames", CreateAlarmOptions.builder()
.threshold(1)
.evaluationPeriods(2)
.build());
channel.metricSvqTime(Pipeline.PIPELINE_0).createAlarm(stack, "SvqTime", CreateAlarmOptions.builder()
.threshold(0)
.evaluationPeriods(1)
.build());
// Custom metric by name with sum statistic
channel.metric("Output4xxErrors", Pipeline.PIPELINE_0, MetricOptions.builder().statistic("sum").build());
For STANDARD channels, alarm on both pipelines:
Channel standardChannel;
Stack stack;
standardChannel.metricDroppedFrames(Pipeline.PIPELINE_0).createAlarm(stack, "Drops0", CreateAlarmOptions.builder()
.threshold(1)
.evaluationPeriods(2)
.build());
standardChannel.metricDroppedFrames(Pipeline.PIPELINE_1).createAlarm(stack, "Drops1", CreateAlarmOptions.builder()
.threshold(1)
.evaluationPeriods(2)
.build());
Channel metrics
| Helper | Metric name | Default statistic | Notes |
|---|---|---|---|
| metricActiveAlerts(pipeline) | ActiveAlerts | Max | Total active alerts on the channel |
| metricNetworkIn(pipeline) | NetworkIn | Avg | Inbound traffic in Mbps |
| metricNetworkOut(pipeline) | NetworkOut | Avg | Outbound traffic in Mbps |
| metricInputVideoFrameRate(pipeline) | InputVideoFrameRate | Max | Source video frame rate |
| metricFillMsec(pipeline) | FillMsec | Max | Time filled with fill frames — non-zero indicates input loss |
| metricInputLossSeconds(pipeline) | InputLossSeconds | Sum | Seconds without packets (RTP / MediaConnect inputs) |
| metricDroppedFrames(pipeline) | DroppedFrames | Sum | Frames dropped because the encoder fell behind |
| metricSvqTime(pipeline) | SvqTime | Max | Percent of time MediaLive reduced quality to keep up |
| metric(name, pipeline, props?) | (custom) | (caller-provided) | Build any metric in AWS/MediaLive |
The defaults match the AWS-recommended statistic for each metric. Pass props to override statistic, period, dimensions, or any other MetricOptions field.
MediaLive Anywhere
MediaLive Anywhere lets you run MediaLive channels on your own on-premises hardware.
Certain input types are only available with Anywhere channels (channels configured with anywhereSettings):
SDI, SMPTE 2110 Receiver Group, and Multicast. Attempting to use these input types on a cloud channel will throw a validation error at synth time.
Network
A network defines IP address pools and routes for Anywhere resources:
Stack stack;
Network network = Network.Builder.create(stack, "Network")
.networkName("on-prem-network")
.ipPools(List.of("10.0.0.0/24"))
.routes(List.of(NetworkRoute.builder().cidr("0.0.0.0/0").gateway("10.0.0.1").build()))
.build();
Cluster
A cluster represents a group of on-premises hardware nodes:
Stack stack;
IRole instanceRole;
Cluster cluster = Cluster.Builder.create(stack, "Cluster")
.clusterName("on-prem-cluster")
.clusterType(ClusterType.ON_PREMISES)
.instanceRole(instanceRole)
.build();
Channel Placement Group
A channel placement group assigns channels to specific nodes within a cluster. Associate it with a channel via anywhereSettings:
Stack stack;
ICluster cluster;
IInput input;
EncodeConfiguration video;
IBucket bucket;
ChannelPlacementGroup cpg = ChannelPlacementGroup.Builder.create(stack, "CPG")
.channelPlacementGroupName("my-cpg")
.cluster(cluster)
.build();
Channel.Builder.create(stack, "AnywhereChannel")
.inputs(List.of(InputAttachment.builder().input(input).build()))
.anywhereSettings(AnywhereSettings.builder().cluster(cluster).channelPlacementGroup(cpg).build())
.outputGroups(List.of(OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
.name("hls")
.destinations(List.of(OutputDestination.toBucket(bucket, "live/stream")))
.outputs(List.of(HlsOutputDefinition.builder().encodes(List.of(video)).outputName("hls_out").build()))
.build())))
.build();
SDI Source
An SDI source represents a physical SDI input on Anywhere hardware:
Stack stack;
SdiSource sdi = SdiSource.Builder.create(stack, "Sdi")
.sdiSourceName("camera-1")
.type(SdiType.SINGLE)
.build();
On-premises input networking
For inputs that live in an on-premises network, set inputNetworkLocation to
InputNetworkLocation.ON_PREMISES. On-premises inputs do not use input security groups. Push
inputs (RTMP/RTP/UDP) can pin their destination to a Network, declare the networkRoutes to
reach it on the local network, and request a staticIpAddress:
Stack stack;
Network network = Network.Builder.create(stack, "Network")
.networkName("on-prem-network")
.ipPools(List.of("192.168.1.0/24"))
.build();
Input.Builder.create(stack, "OnPremInput")
.inputName("on-prem-rtp")
.inputNetworkLocation(InputNetworkLocation.ON_PREMISES)
.input(InputConfiguration.rtpPush(PushInputProps.builder()
.destinations(List.of(PushInputDestination.builder()
.network(network)
.networkRoutes(List.of(NetworkRoute.builder().cidr("10.0.0.0/24").gateway("10.0.0.1").build()))
.staticIpAddress("192.168.1.50")
.build()))
.build()))
.build();
SRT listener inputs accept a streamId that the upstream system uses when connecting:
Stack stack;
IInputSecurityGroup sg;
Input.Builder.create(stack, "SrtListener")
.inputName("srt-listener")
.input(InputConfiguration.srtListener(SrtListenerInputProps.builder()
.inputSecurityGroups(List.of(sg))
.streamId("my-stream-id")
.build()))
.build();
-
ClassDescription(experimental) AAC coding mode.(experimental) AAC input type.(experimental) AAC profile.(experimental) AAC rate control mode.(experimental) AAC raw format.(experimental) Properties for AAC codec settings.A builder for
AacSettingsPropsAn implementation forAacSettingsProps(experimental) AAC specification.(experimental) AAC VBR quality level.(experimental) AC3 attenuation control.(experimental) AC3 bitstream mode.(experimental) AC3 coding mode.(experimental) AC3 DRC profile.(experimental) AC3 LFE filter.(experimental) AC3 metadata control.(experimental) Properties for AC3 codec settings.A builder forAc3SettingsPropsAn implementation forAc3SettingsProps(experimental) AFD signaling mode.(experimental) Options for an ancillary caption source.A builder forAncillaryCaptionSourceOptionsAn implementation forAncillaryCaptionSourceOptions(experimental) Anywhere settings for running the channel on AWS Elemental Anywhere.A builder forAnywhereSettingsAn implementation forAnywhereSettings(experimental) The container (transport stream) for an Archive output.(experimental) Output definition for an Archive output group.A builder forArchiveOutputDefinitionAn implementation forArchiveOutputDefinition(experimental) Properties for an Archive (S3) output group.A builder forArchiveOutputGroupPropsAn implementation forArchiveOutputGroupProps(experimental) Audio bit depth for WAV codec.(experimental) A mapping from input channels to an output channel.A builder forAudioChannelMappingAn implementation forAudioChannelMapping(experimental) Audio codec settings.(experimental) A DASH role to assign to an audio output (used when the output carries DVB DASH accessibility signaling).(experimental) Properties for an audio encode configuration.A builder forAudioEncodePropsAn implementation forAudioEncodeProps(experimental) Determines how the audio language code is signaled in the output.(experimental) Policy for how MediaLive identifies the audio stream when selecting by language, on a transport-stream PMT update.(experimental) Audio normalization algorithm.(experimental) Audio normalization algorithm control.(experimental) Peak calculation method for audio normalization.(experimental) Audio normalization settings.A builder forAudioNormalizationSettingsAn implementation forAudioNormalizationSettings(experimental) Properties for audio-only HLS settings.A builder forAudioOnlyHlsSettingsPropsAn implementation forAudioOnlyHlsSettingsProps(experimental) Configuration for a single audio PID in a PID-based selector.A builder forAudioPidConfigAn implementation forAudioPidConfig(experimental) Audio pre-mixer settings for normalizing audio before interleaving.(experimental) Properties for audio pre-mixer settings.A builder forAudioPreMixerSettingsPropsAn implementation forAudioPreMixerSettingsProps(experimental) Audio sample rate for AAC, MP2, and WAV codecs.(experimental) An audio selector that identifies which audio to extract from the input.(experimental) Properties for an audio-silence failover condition.A builder forAudioSilenceFailoverPropsAn implementation forAudioSilenceFailoverProps(experimental) Configuration for a single audio track in a track-based selector.A builder forAudioTrackConfigAn implementation forAudioTrackConfig(experimental) The audio type, as defined in ISO/IEC 13818-1.(experimental) Determines how the audio type is signaled in the output.(experimental) Audio watermarking settings.A builder forAudioWatermarkSettingsAn implementation forAudioWatermarkSettings(experimental) Automatic input failover configuration for an input attachment.A builder forAutomaticInputFailoverAn implementation forAutomaticInputFailover(experimental) AV1 bit depth.(experimental) Color space settings for AV1 video.(experimental) AV1 level.(experimental) AV1 rate control.(experimental) AV1 scene change detection.(experimental) Properties for AV1 codec settings.A builder forAv1SettingsPropsAn implementation forAv1SettingsProps(experimental) AV1 spatial adaptive quantization.(experimental) AV1 temporal adaptive quantization.(experimental) AV1 timecode insertion.(experimental) Settings for blanking video, audio, and captions during ad avails.A builder forAvailBlankingAn implementation forAvailBlanking(experimental) Avail blanking state.(experimental) Avail settings — how SCTE-35 ad avail markers are handled.(experimental) Properties for a bandwidth reduction filter.A builder forBandwidthReductionFilterPropsAn implementation forBandwidthReductionFilterProps(experimental) Post-filter sharpening for bandwidth reduction filter.(experimental) Bandwidth reduction filter strength.(experimental) Blackout slate configuration for the channel.A builder forBlackoutSlateAn implementation forBlackoutSlate(experimental) Blackout slate state.(experimental) Properties for burn-in captions.A builder forBurnInDestinationPropsAn implementation forBurnInDestinationProps(experimental) Whether a caption track implements accessibility features (written descriptions of dialog, music, and sounds).(experimental) Caption alignment for burn-in and DVB-Sub outputs.(experimental) Background color for burn-in and DVB-Sub captions.(experimental) A DASH role to assign to a captions output (used when the output carries DVB DASH accessibility signaling).(experimental) The output caption format for a caption encode.(experimental) Properties for a caption encode configuration.A builder forCaptionEncodePropsAn implementation forCaptionEncodeProps(experimental) Font color for burn-in and DVB-Sub captions.(experimental) Font size for burn-in and DVB-Sub captions.(experimental) Font and positioning settings for a rendered caption output (burn-in or DVB-Sub).A builder forCaptionFontStylePropsAn implementation forCaptionFontStyleProps(experimental) Maps a captions channel to an ISO 693-2 language code.A builder forCaptionLanguageMappingAn implementation forCaptionLanguageMapping(experimental) Font outline color for burn-in and DVB-Sub captions.(experimental) A display rectangle, expressed as percentages of the underlying video frame, for captions converted to EBU-TT-D or TTML.A builder forCaptionRectangleAn implementation forCaptionRectangle(experimental) A caption selector that identifies which captions to extract from the input.(experimental) Shadow color for burn-in and DVB-Sub captions.(experimental) Controls whether MediaLive delays video to synchronize captions with audio and video output.(experimental) Controls whether a fixed grid is used to generate the subtitle bitmap (Teletext input).(experimental) Properties for CBR rate control.A builder forCbrRateControlPropsAn implementation forCbrRateControlProps(experimental) Properties for a CDI (uncompressed) input.A builder forCdiInputPropsAn implementation forCdiInputProps(experimental) Maximum CDI input resolution.(experimental) Properties for a CDI input specification.A builder forCdiInputSpecificationPropsAn implementation forCdiInputSpecificationProps(experimental) Defines an AWS Elemental MediaLive Channel.(experimental) A fluent builder forChannel.(experimental) The class of the channel.(experimental) Collection of grant methods for a IChannelRef.(experimental) Defines an AWS Elemental MediaLive Channel Placement Group.(experimental) A fluent builder forChannelPlacementGroup.(experimental) Attributes for importing an existing Channel Placement Group.A builder forChannelPlacementGroupAttributesAn implementation forChannelPlacementGroupAttributes(experimental) Properties for creating a MediaLive Channel Placement Group.A builder forChannelPlacementGroupPropsAn implementation forChannelPlacementGroupProps(experimental) Properties for creating a MediaLive Channel.A builder forChannelPropsAn implementation forChannelProps(experimental) Defines an AWS Elemental MediaLive Cluster.(experimental) A fluent builder forCluster.(experimental) Network settings for a MediaLive Cluster.A builder forClusterNetworkSettingsAn implementation forClusterNetworkSettings(experimental) Properties for creating a MediaLive Cluster.A builder forClusterPropsAn implementation forClusterProps(experimental) The hardware type for the cluster.(experimental) Maps a captions channel to an ISO 639-2 language code for a CMAF Ingest output group.A builder forCmafCaptionLanguageMappingAn implementation forCmafCaptionLanguageMapping(experimental) Output definition for a CMAF Ingest output group.A builder forCmafIngestOutputDefinitionAn implementation forCmafIngestOutputDefinition(experimental) Properties for a CMAF Ingest output group.A builder forCmafIngestOutputGroupPropsAn implementation forCmafIngestOutputGroupProps(experimental) A color space correction rule.A builder forColorCorrectionAn implementation forColorCorrection(experimental) Color metadata inclusion.(experimental) A color space supported for 3D-LUT color conversion in a color-correction rule.(experimental) Whether to upconvert 608 captions to 708.(experimental) Which Dolby E program to decode from a selected audio track.(experimental) DVB DASH accessibility signaling for an audio output.(experimental) Settings for inserting a DVB Network Information Table (NIT).A builder forDvbNitSettingsAn implementation forDvbNitSettings(experimental) How DVB Service Description Table (SDT) information is inserted.(experimental) Settings for inserting a DVB Service Description Table (SDT).A builder forDvbSdtSettingsAn implementation forDvbSdtSettings(experimental) Options for a DVB-Sub caption source.A builder forDvbSubCaptionSourceOptionsAn implementation forDvbSubCaptionSourceOptions(experimental) Properties for DVB-Sub captions.A builder forDvbSubDestinationPropsAn implementation forDvbSubDestinationProps(experimental) Settings for inserting a DVB Time and Date Table (TDT).A builder forDvbTdtSettingsAn implementation forDvbTdtSettings(experimental) EAC3 Atmos coding mode.(experimental) EAC3 Atmos DRC line mode profile.(experimental) EAC3 Atmos DRC RF mode profile.(experimental) Properties for EAC3 Atmos codec settings.A builder forEac3AtmosSettingsPropsAn implementation forEac3AtmosSettingsProps(experimental) EAC3 attenuation control.(experimental) EAC3 bitstream mode.(experimental) EAC3 coding mode.(experimental) EAC3 DC filter.(experimental) EAC3 DRC line mode profile.(experimental) EAC3 DRC RF mode profile.(experimental) EAC3 LFE control.(experimental) EAC3 LFE filter.(experimental) EAC3 metadata control.(experimental) EAC3 passthrough control.(experimental) EAC3 phase control.(experimental) Properties for EAC3 codec settings.A builder forEac3SettingsPropsAn implementation forEac3SettingsProps(experimental) EAC3 stereo downmix preference.(experimental) EAC3 surround ex mode.(experimental) EAC3 surround mode.(experimental) Properties for EBU-TT-D caption output.A builder forEbuTtDDestinationPropsAn implementation forEbuTtDDestinationProps(experimental) Whether EBU-TT-D fills the gap between multi-line captions.(experimental) Whether EBU-TT-D includes source style information.(experimental) Options for an embedded (CEA-608/708) caption source.A builder forEmbeddedCaptionSourceOptionsAn implementation forEmbeddedCaptionSourceOptions(experimental) Base interface for an encode configuration (video, audio, or caption).(experimental) Properties for epoch output locking.A builder forEpochOutputLockingPropsAn implementation forEpochOutputLockingProps(experimental) Settings for ESAM (Event Signaling and Management) ad avail handling.A builder forEsamSettingsAn implementation forEsamSettings(experimental) A condition that, when met on the active input, triggers automatic input failover to the secondary input.(experimental) Feature activations for the channel.A builder forFeatureActivationsAn implementation forFeatureActivations(experimental) Feature activation state.(experimental) Enables column-only or column-and-row FEC for a UDP output.(experimental) Forward Error Correction (FEC) settings for a UDP output (SMPTE 2022-1).A builder forFecOutputSettingsAn implementation forFecOutputSettings(experimental) A reference to a file MediaLive reads at runtime — for example an input-loss slate image, an avail-blanking image, a burn-in caption font, or a color-correction LUT.(experimental) Options for a URL-based file location (FileLocation.url).A builder forFileLocationOptionsAn implementation forFileLocationOptions(experimental) Flicker adaptive quantization.(experimental) Properties for fMP4 HLS settings.A builder forFmp4HlsSettingsPropsAn implementation forFmp4HlsSettingsProps(experimental) Output definition for a Frame Capture output group.A builder forFrameCaptureOutputDefinitionAn implementation forFrameCaptureOutputDefinition(experimental) Properties for a Frame Capture output group.A builder forFrameCaptureOutputGroupPropsAn implementation forFrameCaptureOutputGroupProps(experimental) Properties for frame capture codec settings.A builder forFrameCaptureSettingsPropsAn implementation forFrameCaptureSettingsProps(experimental) A video frame rate expressed as a rational number (numerator/denominator).(experimental) Global configuration settings that apply to the entire channel.A builder forGlobalConfigurationAn implementation forGlobalConfiguration(experimental) GOP B-frame reference.(experimental) GOP size (keyframe interval).(experimental) H.264 adaptive quantization strength.(experimental) Color space settings for H.264 video.(experimental) H.264 entropy encoding mode.(experimental) Filter settings for H.264 video.(experimental) H.264 force field pictures.(experimental) H.264 level.(experimental) H.264 profile.(experimental) H.264 quality level.(experimental) H.264 rate control.(experimental) H.264 scene change detection.(experimental) Properties for H.264 codec settings.A builder forH264SettingsPropsAn implementation forH264SettingsProps(experimental) H.264 spatial adaptive quantization.(experimental) H.264 syntax mode.(experimental) H.264 temporal adaptive quantization.(experimental) H.265 adaptive quantization.(experimental) H.265 alternative transfer function.(experimental) Color space settings for H.265 video.(experimental) H.265 deblocking filter.(experimental) Filter settings for H.265 video.(experimental) H.265 level.(experimental) H.265 motion vector over picture boundaries.(experimental) H.265 motion vector temporal predictor.(experimental) H.265 packaging type for HLS/MS Smooth outputs.(experimental) H.265 profile.(experimental) H.265 rate control.(experimental) H.265 scene change detection.(experimental) Properties for H.265 codec settings.A builder forH265SettingsPropsAn implementation forH265SettingsProps(experimental) H.265 tier.(experimental) H.265 tile padding.(experimental) H.265 treeblock size.(experimental) HDR10 color space metadata for the input video.A builder forHdr10SettingsAn implementation forHdr10Settings(experimental) Properties for HDR10 color space settings.A builder forHdr10SettingsPropsAn implementation forHdr10SettingsProps(experimental) Ad marker type for an HLS output group.(experimental) Properties for HLS Akamai CDN settings.A builder forHlsAkamaiCdnPropsAn implementation forHlsAkamaiCdnProps(experimental) The segment container type for an audio-only HLS output.(experimental) The audio track type for an audio-only HLS output.(experimental) Properties for HLS Basic PUT CDN settings.A builder forHlsBasicPutCdnPropsAn implementation forHlsBasicPutCdnProps(experimental) HLS caption language setting.(experimental) CDN settings for HLS output groups.(experimental) HLS client cache control.(experimental) HLS codec specification.(experimental) HLS directory structure.(experimental) HLS discontinuity tags.(experimental) HLS encryption type.(experimental) HLS ID3 segment tagging state.(experimental) HLS I-frame only playlists.(experimental) HLS incomplete segment behavior.(experimental) HLS input loss action.(experimental) HLS input settings for URL pull inputs.A builder forHlsInputSettingsAn implementation forHlsInputSettings(experimental) HLS IV in manifest.(experimental) HLS IV source.(experimental) Key provider settings for HLS encryption.(experimental) HLS manifest compression.(experimental) HLS manifest duration format.(experimental) HLS output mode.(experimental) Output definition for an HLS output group.A builder forHlsOutputDefinitionAn implementation forHlsOutputDefinition(experimental) Properties for an HLS output group.A builder forHlsOutputGroupPropsAn implementation forHlsOutputGroupProps(experimental) HLS output selection.(experimental) HLS program date time.(experimental) HLS program date time clock.(experimental) HLS redundant manifest.(experimental) Options for selecting an HLS audio rendition.A builder forHlsRenditionSelectionOptionsAn implementation forHlsRenditionSelectionOptions(experimental) Properties for HLS S3 CDN settings.A builder forHlsS3CdnPropsAn implementation forHlsS3CdnProps(experimental) The source MediaLive ingests SCTE-35 messages from for an HLS input.(experimental) HLS segmentation mode.(experimental) Per-output HLS settings.(experimental) Properties for HLS static key encryption.A builder forHlsStaticKeyPropsAn implementation forHlsStaticKeyProps(experimental) HLS stream inf resolution.(experimental) HLS timed metadata ID3 frame.(experimental) HLS TS file mode.(experimental) Properties for HLS WebDAV CDN settings.A builder forHlsWebdavCdnPropsAn implementation forHlsWebdavCdnProps(experimental) Whether to use chunked transfer encoding for an HLS CDN connection (Akamai, WebDAV).(experimental) Represents a MediaLive Channel.Internal default implementation forIChannel.A proxy class which represents a concrete javascript instance of this type.(experimental) Represents a MediaLive Channel Placement Group.Internal default implementation forIChannelPlacementGroup.A proxy class which represents a concrete javascript instance of this type.(experimental) Represents a MediaLive Cluster.Internal default implementation forICluster.A proxy class which represents a concrete javascript instance of this type.(experimental) ID3 metadata insertion behavior (CMAF Ingest and MediaPackage V2 output groups).(experimental) Represents a MediaLive Input.Internal default implementation forIInput.A proxy class which represents a concrete javascript instance of this type.(experimental) Represents a MediaLive Input Security Group.Internal default implementation forIInputSecurityGroup.A proxy class which represents a concrete javascript instance of this type.(experimental) Represents a MediaLive Network.Internal default implementation forINetwork.A proxy class which represents a concrete javascript instance of this type.(experimental) Defines an AWS Elemental MediaLive Input.(experimental) A fluent builder forInput.(experimental) An input attachment definition for a channel.A builder forInputAttachmentAn implementation forInputAttachment(experimental) An input channel level for audio remixing.A builder forInputChannelLevelAn implementation forInputChannelLevel(experimental) The codec for the input specification.(experimental) Defines the input configuration for a MediaLive Input.(experimental) Properties for an Elemental Link input device input.A builder forInputDeviceInputPropsAn implementation forInputDeviceInputProps(experimental) Action to take when the current input completes.(experimental) Input filter mode.(experimental) Behavior on input loss: substitute black, optionally repeat the last frame, then show a solid color or a slate image.A builder forInputLossBehaviorAn implementation forInputLossBehavior(experimental) Properties for an input-loss failover condition.A builder forInputLossFailoverPropsAn implementation forInputLossFailoverProps(experimental) The image MediaLive substitutes into the output on input loss.(experimental) The maximum input bitrate for the input specification.(experimental) The network location of a MediaLive input — the AWS cloud, or an on-premises network for MediaLive Anywhere.(experimental) Input preference when deciding which input to make active after a previously failed input has recovered.(experimental) Properties for creating a MediaLive Input.A builder forInputPropsAn implementation forInputProps(experimental) The resolution for the input specification.(experimental) Defines an AWS Elemental MediaLive Input Security Group.(experimental) A fluent builder forInputSecurityGroup.(experimental) Properties for creating a MediaLive Input Security Group.A builder forInputSecurityGroupPropsAn implementation forInputSecurityGroupProps(experimental) A source for a pull-type input.(experimental) Options for a URL-based input source.A builder forInputSourceOptionsAn implementation forInputSourceOptions(experimental) The input specification for a channel.(experimental) A mapping between a logical interface name and a network ID.A builder forInterfaceMappingAn implementation forInterfaceMapping(experimental) Represents a MediaLive SDI Source.Internal default implementation forISdiSource.A proxy class which represents a concrete javascript instance of this type.(experimental) CMAF Ingest KLV behavior.(experimental) Linked channel settings for primary/follower channel configurations.(experimental) The log level for the channel.(experimental) Lookahead rate control.(experimental) The S3 location of a 3D LUT (look-up table) file used by a color-correction rule.(experimental) Behavior when the selected input audio stream is removed from the input.(experimental) ARIB-compliant field muxing.(experimental) How the ARIB Captions PID is selected.(experimental) The buffer model used for Dolby Digital audio.(experimental) The stream type used for audio elementary streams.(experimental) The buffer model used for the transport stream.(experimental) Whether to generate the captionServiceDescriptor in the PMT.(experimental) EBIF data passthrough behavior.(experimental) Controls placement of audio Encoder Boundary Point (EBP) markers.(experimental) Controls placement of EBP markers on audio PIDs.(experimental) Whether to include the ES Rate field in the PES header.(experimental) KLV data passthrough behavior.(experimental) Nielsen ID3 passthrough behavior.(experimental) Controls insertion of the Program Clock Reference (PCR).(experimental) The output bitrate mode of the transport stream.(experimental) SCTE-35 passthrough behavior.(experimental) The type of segmentation markers to insert.(experimental) How segmentation markers respond to avails truncating a segment.(experimental) MPEG-2 transport stream (M2TS) container settings for an MPEG-TS output.(experimental) Properties for MPEG-2 transport stream (M2TS) container settings.A builder forM2tsSettingsPropsAn implementation forM2tsSettingsProps(experimental) Timed metadata passthrough behavior.(experimental) KLV data passthrough behavior for an M3U8 container.(experimental) Nielsen ID3 passthrough behavior for an M3U8 container.(experimental) Controls insertion of the Program Clock Reference (PCR) in an M3U8 container.(experimental) SCTE-35 passthrough behavior for an M3U8 container.(experimental) M3U8 container settings for a standard HLS output.(experimental) Properties for M3U8 container settings.A builder forM3u8SettingsPropsAn implementation forM3u8SettingsProps(experimental) Timed-metadata passthrough behavior for an M3U8 container.(experimental) Day of the week for maintenance.(experimental) Maintenance window settings for the channel.A builder forMaintenanceSettingsAn implementation forMaintenanceSettings(experimental) Properties for a MediaConnect input.A builder forMediaConnectInputPropsAn implementation forMediaConnectInputProps(experimental) Properties for a MediaConnect router input.A builder forMediaConnectRouterInputPropsAn implementation forMediaConnectRouterInputProps(experimental) Output definition for a MediaConnect Router output group.A builder forMediaConnectRouterOutputDefinitionAn implementation forMediaConnectRouterOutputDefinition(experimental) Properties for a MediaConnect Router output group.A builder forMediaConnectRouterOutputGroupPropsAn implementation forMediaConnectRouterOutputGroupProps(experimental) Per-pipeline settings forMediaConnectRouterSettings.perPipeline().A builder forMediaConnectRouterPerPipelineSettingsAn implementation forMediaConnectRouterPerPipelineSettings(experimental) Per-pipeline settings for a MediaConnect Router output destination.A builder forMediaConnectRouterPipelineConfigAn implementation forMediaConnectRouterPipelineConfig(experimental) Transit-encryption settings for a MediaConnect Router output group, applied per channel pipeline.(experimental) A MediaPackage V2 destination for a MediaLive output group.(experimental) The pipeline endpoint for a MediaPackage V2 destination.(experimental) Whether MediaPackage sets a MediaPackage V2 audio rendition as default / auto-select in the HLS manifest.(experimental) Output definition for a MediaPackage V2 output group.A builder forMediaPackageV2OutputDefinitionAn implementation forMediaPackageV2OutputDefinition(experimental) Common properties shared by the MediaPackage V2 output group variants.A builder forMediaPackageV2OutputGroupBasePropsAn implementation forMediaPackageV2OutputGroupBaseProps(experimental) Properties for a MediaPackage V2 output group.A builder forMediaPackageV2OutputGroupPropsAn implementation forMediaPackageV2OutputGroupProps(experimental) Properties for a MediaPackage V2 output group with explicit per-pipeline destinations.A builder forMediaPackageV2PerPipelineOutputGroupPropsAn implementation forMediaPackageV2PerPipelineOutputGroupProps(experimental) Motion graphics overlay configuration.A builder forMotionGraphicsConfigurationAn implementation forMotionGraphicsConfiguration(experimental) Motion graphics insertion state.(experimental) MP2 coding mode.(experimental) Properties for MP2 codec settings.A builder forMp2SettingsPropsAn implementation forMp2SettingsProps(experimental) MS Smooth audio-only timecode control.(experimental) MS Smooth certificate mode.(experimental) MS Smooth event ID mode.(experimental) MS Smooth event stop behavior.(experimental) MS Smooth input loss action.(experimental) Output definition for an MS Smooth output group.A builder forMsSmoothOutputDefinitionAn implementation forMsSmoothOutputDefinition(experimental) Properties for an MS Smooth output group.A builder forMsSmoothOutputGroupPropsAn implementation forMsSmoothOutputGroupProps(experimental) MS Smooth segmentation mode.(experimental) MS Smooth sparse track type.(experimental) MS Smooth stream manifest behavior.(experimental) MS Smooth timestamp offset mode.(experimental) Properties for a multicast input.A builder forMulticastInputPropsAn implementation forMulticastInputProps(experimental) A source for a multicast input.A builder forMulticastInputSourceAn implementation forMulticastInputSource(experimental) The transport protocol for a multicast source.(experimental) Defines an AWS Elemental MediaLive Network.(experimental) A fluent builder forNetwork.(experimental) Attributes for importing an existing Network.A builder forNetworkAttributesAn implementation forNetworkAttributes(experimental) Network end blackout state.(experimental) Network input settings for URL pull inputs.A builder forNetworkInputSettingsAn implementation forNetworkInputSettings(experimental) Properties for creating a MediaLive Network.A builder forNetworkPropsAn implementation forNetworkProps(experimental) A route for a MediaLive Network.A builder forNetworkRouteAn implementation forNetworkRoute(experimental) Nielsen CBET watermark settings.A builder forNielsenCbetSettingsAn implementation forNielsenCbetSettings(experimental) CBET insertion behavior when prior encoding is detected on the same layer.(experimental) Nielsen watermark configuration.A builder forNielsenConfigurationAn implementation forNielsenConfiguration(experimental) Nielsen watermark distribution type.(experimental) CMAF Ingest Nielsen ID3 behavior.(experimental) Nielsen NAES II/NW watermark settings.A builder forNielsenNaesIiNwSettingsAn implementation forNielsenNaesIiNwSettings(experimental) Whether Nielsen PCM to ID3 tagging is enabled.(experimental) Nielsen watermark settings for audio.A builder forNielsenWatermarksSettingsAn implementation forNielsenWatermarksSettings(experimental) Timezone applied to the timestamps in a Nielsen NAES II/NW watermark.(experimental) The OCR language to use when converting an image-based caption source to text.(experimental) Represents an output within an output group.(experimental) Base output definition — shared by all output group types.A builder forOutputDefinitionAn implementation forOutputDefinition(experimental) A general URL-based output destination — an S3 bucket or an HTTP(S) endpoint.(experimental) Options for a URL-based output destination.A builder forOutputDestinationOptionsAn implementation forOutputDestinationOptions(experimental) Configuration for an output group.(experimental) Output locking synchronises the frames emitted by a channel's two pipelines.(experimental) Source of output timing.(experimental) MediaLive pipeline (channel pipeline 0 or 1).(experimental) The method MediaLive uses to synchronise pipelines for pipeline output locking.(experimental) Properties for pipeline output locking.A builder forPipelineOutputLockingPropsAn implementation forPipelineOutputLockingProps(experimental) The pixel aspect ratio (PAR) of the video.(experimental) Connection details for an ESAM POIS (Placement Opportunity Information System) endpoint.A builder forPoisEndpointAn implementation forPoisEndpoint(experimental) A destination for a push-type input.A builder forPushInputDestinationAn implementation forPushInputDestination(experimental) Properties for push-type inputs (RTMP_PUSH, RTP_PUSH, UDP_PUSH).A builder forPushInputPropsAn implementation forPushInputProps(experimental) Properties for QVBR rate control.A builder forQvbrRateControlPropsAn implementation forQvbrRateControlProps(experimental) Audio remix settings for channel remapping.A builder forRemixSettingsAn implementation forRemixSettings(experimental) How to respond to AFD values in the input stream.(experimental) Ad marker type for an RTMP output group.(experimental) RTMP authentication scheme.(experimental) RTMP cache full behavior.(experimental) RTMP caption data.(experimental) RTMP TLS certificate verification mode.(experimental) A destination for an RTMP output group.(experimental) RTMP include filler NAL units.(experimental) RTMP input loss action.(experimental) Output definition for an RTMP output group.A builder forRtmpOutputDefinitionAn implementation forRtmpOutputDefinition(experimental) Properties for an RTMP output group.A builder forRtmpOutputGroupPropsAn implementation forRtmpOutputGroupProps(experimental) S3 canned ACL for output destinations.(experimental) A destination for an Archive or Frame Capture output group — always an S3 bucket.(experimental) Video scaling behavior.(experimental) Scan type for the output video.(experimental) Options for an SCTE-20 caption source.A builder forScte20CaptionSourceOptionsAn implementation forScte20CaptionSourceOptions(experimental) SCTE-20 detection mode for an embedded caption source.(experimental) Options for an SCTE-27 caption source.A builder forScte27CaptionSourceOptionsAn implementation forScte27CaptionSourceOptions(experimental) How to handle SCTE-35 regional blackout and web delivery flags.(experimental) Controls which output groups receive SCTE-35 segmentation cues.(experimental) SCTE-35 splice insert avail settings.A builder forScte35SpliceInsertSettingsAn implementation forScte35SpliceInsertSettings(experimental) SCTE-35 time signal APOS avail settings.A builder forScte35TimeSignalAposSettingsAn implementation forScte35TimeSignalAposSettings(experimental) CMAF Ingest SCTE-35 type.(experimental) Mode when quad SDI input is selected.(experimental) Defines an AWS Elemental MediaLive SDI Source.(experimental) A fluent builder forSdiSource.(experimental) Attributes for importing an existing SDI Source.A builder forSdiSourceAttributesAn implementation forSdiSourceAttributes(experimental) Properties for creating an SDI Source.A builder forSdiSourcePropsAn implementation forSdiSourceProps(experimental) The type of SDI input.(experimental) The length of a media segment for an output group.(experimental) Server validation mode for HTTPS inputs.(experimental) Options for a smart subtitle caption source (AI-generated subtitles via Elemental Inference).A builder forSmartSubtitleSourceOptionsAn implementation forSmartSubtitleSourceOptions(experimental) SMPTE-2038 data preference.(experimental) Properties for a SMPTE 2110 receiver group input.A builder forSmpte2110InputPropsAn implementation forSmpte2110InputProps(experimental) A reference to an SDP file that describes a SMPTE 2110 stream to ingest.A builder forSmpte2110SdpLocationAn implementation forSmpte2110SdpLocation(experimental) The source end behavior for file-based inputs.(experimental) SRT caller destination properties.A builder forSrtCallerDestinationPropsAn implementation forSrtCallerDestinationProps(experimental) Properties for an SRT caller input.A builder forSrtCallerSourcePropsAn implementation forSrtCallerSourceProps(experimental) Options for a URL-based SRT caller destination (SrtDestination.callerUrl).A builder forSrtCallerUrlOptionsAn implementation forSrtCallerUrlOptions(experimental) The encryption algorithm for SRT decryption.(experimental) Properties for SRT decryption.A builder forSrtDecryptionPropsAn implementation forSrtDecryptionProps(experimental) A destination for an SRT output group.(experimental) SRT output encryption type.(experimental) Behavior of last resort when input video is lost and no more backup inputs are available, for an SRT output group.(experimental) SRT listener destination properties.A builder forSrtListenerDestinationPropsAn implementation forSrtListenerDestinationProps(experimental) Properties for an SRT listener input.A builder forSrtListenerInputPropsAn implementation forSrtListenerInputProps(experimental) Output definition for an SRT output group.A builder forSrtOutputDefinitionAn implementation forSrtOutputDefinition(experimental) Properties for an SRT output group.A builder forSrtOutputGroupPropsAn implementation forSrtOutputGroupProps(experimental) Properties for standard (video) HLS settings.A builder forStandardHlsSettingsPropsAn implementation forStandardHlsSettingsProps(experimental) Properties shared by all input specifications.A builder forStandardInputSpecificationPropsAn implementation forStandardInputSpecificationProps(experimental) Sub-GOP length mode.(experimental) Options for a Teletext caption source.A builder forTeletextCaptionSourceOptionsAn implementation forTeletextCaptionSourceOptions(experimental) Post-filter sharpening for temporal filter.(experimental) Properties for a temporal filter.A builder forTemporalFilterPropsAn implementation forTemporalFilterProps(experimental) Temporal filter strength.(experimental) Thumbnail configuration for the channel.A builder forThumbnailConfigurationAn implementation forThumbnailConfiguration(experimental) Thumbnail state.(experimental) Font size for timecode burn-in.(experimental) Position for timecode burn-in overlay.(experimental) Settings for burning a timecode overlay into the video output.A builder forTimecodeBurninSettingsAn implementation forTimecodeBurninSettings(experimental) Timecode configuration for the channel.A builder forTimecodeConfigAn implementation forTimecodeConfig(experimental) Timecode insertion mode.(experimental) The source of timecode for the channel outputs.(experimental) CMAF Ingest timed metadata ID3 frame.(experimental) CMAF Ingest timed metadata passthrough.(experimental) A destination address (IP or host) and port for a transport-stream output.A builder forTransportOutputDestinationPropsAn implementation forTransportOutputDestinationProps(experimental) Properties for TTML caption output.A builder forTtmlDestinationPropsAn implementation forTtmlDestinationProps(experimental) Whether TTML passes through source style/position.(experimental) UDP input loss action.(experimental) Output definition for a UDP output group.A builder forUdpOutputDefinitionAn implementation forUdpOutputDefinition(experimental) A destination for a UDP output group — a UDP or RTP transport endpoint.(experimental) Properties for a UDP output group.A builder forUdpOutputGroupPropsAn implementation forUdpOutputGroupProps(experimental) UDP timed metadata ID3 frame.(experimental) Properties for VBR rate control.A builder forVbrRateControlPropsAn implementation forVbrRateControlProps(experimental) Properties for a video-black failover condition.A builder forVideoBlackFailoverPropsAn implementation forVideoBlackFailoverProps(experimental) Video codec settings.(experimental) Video color space.(experimental) Controls how thecolorSpacevalue is used when it is notFOLLOW.(experimental) Properties for a video encode configuration.A builder forVideoEncodePropsAn implementation forVideoEncodeProps(experimental) Selects the specific video to extract from the input — by PID or by program.(experimental) Video selector settings for an input.A builder forVideoSelectorSettingsAn implementation forVideoSelectorSettings(experimental) VPC output settings for the channel.A builder forVpcOutputSettingsAn implementation forVpcOutputSettings(experimental) WAV coding mode.(experimental) Properties for WAV codec settings.A builder forWavSettingsPropsAn implementation forWavSettingsProps(experimental) Properties for WebVTT caption output.A builder forWebvttDestinationPropsAn implementation forWebvttDestinationProps(experimental) Whether WebVTT passes through source style/position.