Skip to content
GitHubXDiscord

Multiplex

The Multiplex resource allows you to manage AWS MediaLive Multiplexs which serve as containers for managing multiple input streams and output destinations for live video broadcasting.

Create a basic MediaLive Multiplex with required settings and a single destination.

import AWS from "alchemy/aws/control";
const multiplex = await AWS.MediaLive.Multiplex("myMultiplex", {
name: "MyFirstMultiplex",
availabilityZones: ["us-east-1a", "us-east-1b"],
multiplexSettings: {
transportStream: {
segmentationMode: "useSegmentDuration",
segmentDuration: 10,
outputScteMarkers: "none"
}
},
destinations: [{
id: "destination1",
settings: {
destinationRefId: "myDestinationRef"
}
}]
});

Configure a Multiplex with additional tags and multiple destinations for complex broadcasting needs.

const advancedMultiplex = await AWS.MediaLive.Multiplex("advancedMultiplex", {
name: "AdvancedMultiplex",
availabilityZones: ["us-west-2a", "us-west-2b"],
multiplexSettings: {
transportStream: {
segmentationMode: "useInputSegmentation",
segmentDuration: 5,
outputScteMarkers: "passthrough"
}
},
destinations: [
{
id: "destination1",
settings: {
destinationRefId: "destinationRef1"
}
},
{
id: "destination2",
settings: {
destinationRefId: "destinationRef2"
}
}
],
tags: [
{
key: "Environment",
value: "Production"
},
{
key: "Owner",
value: "TeamA"
}
]
});

Create a Multiplex that outputs to multiple destinations with different configurations.

const complexMultiplex = await AWS.MediaLive.Multiplex("complexMultiplex", {
name: "ComplexMultiplex",
availabilityZones: ["us-east-1a", "us-east-1b"],
multiplexSettings: {
transportStream: {
segmentationMode: "useSegmentDuration",
segmentDuration: 5,
outputScteMarkers: "none"
}
},
destinations: [
{
id: "primaryDestination",
settings: {
destinationRefId: "primaryOutput"
}
},
{
id: "secondaryDestination",
settings: {
destinationRefId: "secondaryOutput"
}
}
],
tags: [
{
key: "Project",
value: "LiveStreaming"
}
]
});