Skip to content

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.

Minimal Example

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

ts
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"
    }
  }]
});

Advanced Configuration

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

ts
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"
    }
  ]
});

Complex Use Case with Multiple Outputs

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

ts
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"
    }
  ]
});