Experimental
@aws-cdk/aws-medialive-alpha is an experimental (alpha) package: its API may change in any release, without a major version bump.
VideoCodecSettings Class
Video codec settings.
Use the static factory methods to create.
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"),
},
},
}),
},
})
Initializer
ts
new VideoCodecSettings()
python
VideoCodecSettings()
java
new VideoCodecSettings()
csharp
new VideoCodecSettings()
go
NewVideoCodecSettings()
Methods
av1(props?: Av1SettingsProps): VideoCodecSettings // chainable@staticmethod def av1(props: typing.Optional[Av1SettingsProps] = None) -> VideoCodecSettingspublic static VideoCodecSettings av1(Av1SettingsProps props)public static VideoCodecSettings Av1(Av1SettingsProps? props = null)func Av1(Props Av1SettingsProps) VideoCodecSettingsstatic#Create AV1 codec settings.
frameCapture(props?: FrameCaptureSettingsProps): VideoCodecSettings // chainable@staticmethod def frame_capture(props: typing.Optional[FrameCaptureSettingsProps] = None) -> VideoCodecSettingspublic static VideoCodecSettings frameCapture(FrameCaptureSettingsProps props)public static VideoCodecSettings FrameCapture(FrameCaptureSettingsProps? props = null)func FrameCapture(Props FrameCaptureSettingsProps) VideoCodecSettingsstatic#Create frame capture codec settings.
h264(props?: H264SettingsProps): VideoCodecSettings // chainable@staticmethod def h264(props: typing.Optional[H264SettingsProps] = None) -> VideoCodecSettingspublic static VideoCodecSettings h264(H264SettingsProps props)public static VideoCodecSettings H264(H264SettingsProps? props = null)func H264(Props H264SettingsProps) VideoCodecSettingsstatic#Create H.264 (AVC) codec settings.
h265(props: H265SettingsProps): VideoCodecSettings // chainable@staticmethod def h265(props: H265SettingsProps) -> VideoCodecSettingspublic static VideoCodecSettings h265(H265SettingsProps props)public static VideoCodecSettings H265(H265SettingsProps props)func H265(Props H265SettingsProps) VideoCodecSettingsstatic#Create H.265 (HEVC) codec settings. Framerate is required for H.265.