Skip to content
v2.276.0

Experimental

@aws-cdk/aws-medialive-alpha is an experimental (alpha) package: its API may change in any release, without a major version bump.

ChannelClass Class ​

The class of the channel.

Determines the pipeline redundancy.

Example ​

ts
declare const stack: Stack;
declare const input: medialive.IInput;
declare const mpChannel: mediapackagev2.IChannel;

const hdVideo = medialive.EncodeConfiguration.video({
  name: 'video_1080p',
  codec: medialive.VideoCodecSettings.h265({
    rateControl: medialive.H265RateControl.qvbr({
      maxBitrate: Bitrate.mbps(8),
      qvbrQualityLevel: 7,
    }),
    framerate: medialive.Framerate.FPS_30,
  }),
  width: 1920,
  height: 1080,
});

const sdVideo = medialive.EncodeConfiguration.video({
  name: 'video_480p',
  codec: medialive.VideoCodecSettings.h265({
    rateControl: medialive.H265RateControl.qvbr({
      maxBitrate: Bitrate.mbps(2),
      qvbrQualityLevel: 7,
    }),
    framerate: medialive.Framerate.FPS_30,
  }),
  width: 854,
  height: 480,
});

const audio = medialive.EncodeConfiguration.audio({
  name: 'audio_aac',
  codec: medialive.AudioCodecSettings.aac({ bitrate: Bitrate.kbps(192) }),
});

new medialive.Channel(stack, 'Channel', {
  channelClass: medialive.ChannelClass.STANDARD,
  inputs: [{ input }],
  outputGroups: [
    medialive.OutputGroupConfiguration.mediaPackageV2({
      name: 'emp',
      channel: mpChannel,
      outputs: [
        { encode: hdVideo, outputName: 'hd' },
        { encode: sdVideo, outputName: 'sd' },
        { encode: audio, outputName: 'audio' },
      ],
    }),
  ],
});
python
# stack: Stack
# input: medialive.IInput
# mp_channel: mediapackagev2.IChannel


hd_video = medialive.EncodeConfiguration.video(
    name="video_1080p",
    codec=medialive.VideoCodecSettings.h265(
        rate_control=medialive.H265RateControl.qvbr(
            max_bitrate=Bitrate.mbps(8),
            qvbr_quality_level=7
        ),
        framerate=medialive.Framerate.FPS_30
    ),
    width=1920,
    height=1080
)

sd_video = medialive.EncodeConfiguration.video(
    name="video_480p",
    codec=medialive.VideoCodecSettings.h265(
        rate_control=medialive.H265RateControl.qvbr(
            max_bitrate=Bitrate.mbps(2),
            qvbr_quality_level=7
        ),
        framerate=medialive.Framerate.FPS_30
    ),
    width=854,
    height=480
)

audio = medialive.EncodeConfiguration.audio(
    name="audio_aac",
    codec=medialive.AudioCodecSettings.aac(bitrate=Bitrate.kbps(192))
)

medialive.Channel(stack, "Channel",
    channel_class=medialive.ChannelClass.STANDARD,
    inputs=[medialive.InputAttachment(input=input)],
    output_groups=[
        medialive.OutputGroupConfiguration.media_package_v2(
            name="emp",
            channel=mp_channel,
            outputs=[medialive.MediaPackageV2OutputDefinition(encode=hd_video, output_name="hd"), medialive.MediaPackageV2OutputDefinition(encode=sd_video, output_name="sd"), medialive.MediaPackageV2OutputDefinition(encode=audio, output_name="audio")
            ]
        )
    ]
)
java
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();
csharp
// Install: dotnet add package Amazon.CDK.AWS.MediaLive.Alpha
Stack stack;
IInput input;
IChannel mpChannel;


var hdVideo = EncodeConfiguration.Video(new VideoEncodeProps {
    Name = "video_1080p",
    Codec = VideoCodecSettings.H265(new H265SettingsProps {
        RateControl = H265RateControl.Qvbr(new QvbrRateControlProps {
            MaxBitrate = Bitrate.Mbps(8),
            QvbrQualityLevel = 7
        }),
        Framerate = Framerate.FPS_30
    }),
    Width = 1920,
    Height = 1080
});

var sdVideo = EncodeConfiguration.Video(new VideoEncodeProps {
    Name = "video_480p",
    Codec = VideoCodecSettings.H265(new H265SettingsProps {
        RateControl = H265RateControl.Qvbr(new QvbrRateControlProps {
            MaxBitrate = Bitrate.Mbps(2),
            QvbrQualityLevel = 7
        }),
        Framerate = Framerate.FPS_30
    }),
    Width = 854,
    Height = 480
});

var audio = EncodeConfiguration.Audio(new AudioEncodeProps {
    Name = "audio_aac",
    Codec = AudioCodecSettings.Aac(new AacSettingsProps { Bitrate = Bitrate.Kbps(192) })
});

new Channel(stack, "Channel", new ChannelProps {
    ChannelClass = ChannelClass.STANDARD,
    Inputs = new [] { new InputAttachment { Input = input } },
    OutputGroups = new [] { OutputGroupConfiguration.MediaPackageV2(new MediaPackageV2OutputGroupProps {
        Name = "emp",
        Channel = mpChannel,
        Outputs = new [] { new MediaPackageV2OutputDefinition { Encode = hdVideo, OutputName = "hd" }, new MediaPackageV2OutputDefinition { Encode = sdVideo, OutputName = "sd" }, new MediaPackageV2OutputDefinition { Encode = audio, OutputName = "audio" } }
    }) }
});
go
// Install: go get github.com/aws/aws-cdk-go/awsmedialivealpha/v2
var stack Stack
var input IInput
var mpChannel IChannel


hdVideo := medialive.EncodeConfiguration_Video(&VideoEncodeProps{
	Name: jsii.String("video_1080p"),
	Codec: medialive.VideoCodecSettings_H265(&H265SettingsProps{
		RateControl: medialive.H265RateControl_Qvbr(&QvbrRateControlProps{
			MaxBitrate: awscdk.Bitrate_Mbps(jsii.Number(8)),
			QvbrQualityLevel: jsii.Number(7),
		}),
		Framerate: medialive.Framerate_FPS_30(),
	}),
	Width: jsii.Number(1920),
	Height: jsii.Number(1080),
})

sdVideo := medialive.EncodeConfiguration_Video(&VideoEncodeProps{
	Name: jsii.String("video_480p"),
	Codec: medialive.VideoCodecSettings_*H265(&H265SettingsProps{
		RateControl: medialive.H265RateControl_*Qvbr(&QvbrRateControlProps{
			MaxBitrate: awscdk.Bitrate_*Mbps(jsii.Number(2)),
			QvbrQualityLevel: jsii.Number(7),
		}),
		Framerate: medialive.Framerate_FPS_30(),
	}),
	Width: jsii.Number(854),
	Height: jsii.Number(480),
})

audio := medialive.EncodeConfiguration_Audio(&AudioEncodeProps{
	Name: jsii.String("audio_aac"),
	Codec: medialive.AudioCodecSettings_Aac(&AacSettingsProps{
		Bitrate: awscdk.Bitrate_Kbps(jsii.Number(192)),
	}),
})

medialive.NewChannel(stack, jsii.String("Channel"), &ChannelProps{
	ChannelClass: medialive.ChannelClass_STANDARD(),
	Inputs: []InputAttachment{
		&InputAttachment{
			Input: *Input,
		},
	},
	OutputGroups: []OutputGroupConfiguration{
		medialive.OutputGroupConfiguration_MediaPackageV2(&MediaPackageV2OutputGroupProps{
			Name: jsii.String("emp"),
			Channel: mpChannel,
			Outputs: []MediaPackageV2OutputDefinition{
				&MediaPackageV2OutputDefinition{
					Encode: hdVideo,
					OutputName: jsii.String("hd"),
				},
				&MediaPackageV2OutputDefinition{
					Encode: sdVideo,
					OutputName: jsii.String("sd"),
				},
				&MediaPackageV2OutputDefinition{
					Encode: audio,
					OutputName: jsii.String("audio"),
				},
			},
		}),
	},
})

Properties ​

SINGLE_PIPELINEChannelClasssingle_pipelineChannelClassSINGLE_PIPELINEChannelClassSINGLE_PIPELINEChannelClassSINGLE_PIPELINEChannelClassstatic#
Single pipeline — no redundancy.
STANDARDChannelClassstandardChannelClassSTANDARDChannelClassSTANDARDChannelClassSTANDARDChannelClassstatic#
Standard — two pipelines for redundancy.
valuestringvaluestrvalueStringValuestringValue*string#
The underlying string value passed to CloudFormation.

Methods ​

of(value: string): ChannelClass // chainable@staticmethod def of(value: str) -> ChannelClasspublic static ChannelClass of(String value)public static ChannelClass Of(string value)func Of(Value *string) ChannelClassstatic#
A value not yet modelled by AWS CDK.