Skip to content
v2.277.0

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 ​

FPS_24Frameratefps_24FramerateFPS_24FramerateFPS_24FramerateFPS_24Frameratestatic#
24 fps (cinema) — `24/1`.
FPS_25Frameratefps_25FramerateFPS_25FramerateFPS_25FramerateFPS_25Frameratestatic#
25 fps — `25/1`.
FPS_29_97Frameratefps_29_97FramerateFPS_29_97FramerateFPS_29_97FramerateFPS_29_97Frameratestatic#
29.97 fps — `30000/1001`.
FPS_30Frameratefps_30FramerateFPS_30FramerateFPS_30FramerateFPS_30Frameratestatic#
30 fps — `30/1`.
FPS_50Frameratefps_50FramerateFPS_50FramerateFPS_50FramerateFPS_50Frameratestatic#
50 fps — `50/1`.
FPS_59_94Frameratefps_59_94FramerateFPS_59_94FramerateFPS_59_94FramerateFPS_59_94Frameratestatic#
59.94 fps — `60000/1001`.
FPS_60Frameratefps_60FramerateFPS_60FramerateFPS_60FramerateFPS_60Frameratestatic#
60 fps — `60/1`.

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.