Experimental
@aws-cdk/aws-medialive-alpha is an experimental (alpha) package: its API may change in any release, without a major version bump.
Framerate Class
A video frame rate expressed as a rational number (numerator/denominator).
Use the predefined constants for standard rates, or {@link Framerate.of} for a custom rate.
Example
ts
declare const stack: Stack;
declare const input: medialive.IInput;
declare const bucket: s3.IBucket;
const video = medialive.EncodeConfiguration.video({
name: 'video_720p',
codec: medialive.VideoCodecSettings.h264({
rateControl: medialive.H264RateControl.cbr({ bitrate: Bitrate.mbps(3) }),
framerate: medialive.Framerate.FPS_30,
}),
width: 1280,
height: 720,
});
const audio = medialive.EncodeConfiguration.audio({
name: 'audio_aac',
codec: medialive.AudioCodecSettings.aac({ bitrate: Bitrate.kbps(192) }),
});
new medialive.Channel(stack, 'Channel', {
inputs: [{ input }],
outputGroups: [
medialive.OutputGroupConfiguration.hls({
name: 'hls',
destinations: [medialive.OutputDestination.toBucket(bucket, 'live/stream')],
outputs: [{ encodes: [video, audio], outputName: 'hls_out' }],
}),
],
});
python
# stack: Stack
# input: medialive.IInput
# bucket: s3.IBucket
video = medialive.EncodeConfiguration.video(
name="video_720p",
codec=medialive.VideoCodecSettings.h264(
rate_control=medialive.H264RateControl.cbr(bitrate=Bitrate.mbps(3)),
framerate=medialive.Framerate.FPS_30
),
width=1280,
height=720
)
audio = medialive.EncodeConfiguration.audio(
name="audio_aac",
codec=medialive.AudioCodecSettings.aac(bitrate=Bitrate.kbps(192))
)
medialive.Channel(stack, "Channel",
inputs=[medialive.InputAttachment(input=input)],
output_groups=[
medialive.OutputGroupConfiguration.hls(
name="hls",
destinations=[medialive.OutputDestination.to_bucket(bucket, "live/stream")],
outputs=[medialive.HlsOutputDefinition(encodes=[video, audio], output_name="hls_out")]
)
]
)
java
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();
csharp
// Install: dotnet add package Amazon.CDK.AWS.MediaLive.Alpha
Stack stack;
IInput input;
IBucket bucket;
var video = EncodeConfiguration.Video(new VideoEncodeProps {
Name = "video_720p",
Codec = VideoCodecSettings.H264(new H264SettingsProps {
RateControl = H264RateControl.Cbr(new CbrRateControlProps { Bitrate = Bitrate.Mbps(3) }),
Framerate = Framerate.FPS_30
}),
Width = 1280,
Height = 720
});
var audio = EncodeConfiguration.Audio(new AudioEncodeProps {
Name = "audio_aac",
Codec = AudioCodecSettings.Aac(new AacSettingsProps { Bitrate = Bitrate.Kbps(192) })
});
new Channel(stack, "Channel", new ChannelProps {
Inputs = new [] { new InputAttachment { Input = input } },
OutputGroups = new [] { OutputGroupConfiguration.Hls(new HlsOutputGroupProps {
Name = "hls",
Destinations = new [] { OutputDestination.ToBucket(bucket, "live/stream") },
Outputs = new [] { new HlsOutputDefinition { Encodes = new [] { video, audio }, OutputName = "hls_out" } }
}) }
});
go
// Install: go get github.com/aws/aws-cdk-go/awsmedialivealpha/v2
var stack Stack
var input IInput
var bucket IBucket
video := medialive.EncodeConfiguration_Video(&VideoEncodeProps{
Name: jsii.String("video_720p"),
Codec: medialive.VideoCodecSettings_H264(&H264SettingsProps{
RateControl: medialive.H264RateControl_Cbr(&CbrRateControlProps{
Bitrate: awscdk.Bitrate_Mbps(jsii.Number(3)),
}),
Framerate: medialive.Framerate_FPS_30(),
}),
Width: jsii.Number(1280),
Height: jsii.Number(720),
})
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{
Inputs: []InputAttachment{
&InputAttachment{
Input: *Input,
},
},
OutputGroups: []OutputGroupConfiguration{
medialive.OutputGroupConfiguration_Hls(&HlsOutputGroupProps{
Name: jsii.String("hls"),
Destinations: []OutputDestination{
medialive.OutputDestination_ToBucket(bucket, jsii.String("live/stream")),
},
Outputs: []HlsOutputDefinition{
&HlsOutputDefinition{
Encodes: []EncodeConfiguration{
video,
audio,
},
OutputName: jsii.String("hls_out"),
},
},
}),
},
})
Properties
24 fps (cinema) — `24/1`.
29.97 fps — `30000/1001`.
59.94 fps — `60000/1001`.
Methods
of(numerator: number, denominator: number): Framerate // chainable@staticmethod def of(numerator: int | float, denominator: int | float) -> Frameratepublic static Framerate of(Number numerator, Number denominator)public static Framerate Of(double numerator, double denominator)func Of(Numerator *float64, Denominator *float64) Frameratestatic#Define a custom frame rate.
2 parameters
Parameters
numeratornumeratornumeratornumeratorNumerator— Numerator of the rate.denominatordenominatordenominatordenominatorDenominator— Denominator of the rate.
toString(): stringdef to_string(self, ) -> strpublic String toString()public string ToString()func ToString() *string#Returns the string value.