Skip to content

PackagingConfiguration ​

The PackagingConfiguration resource lets you manage AWS MediaPackage PackagingConfigurations for preparing and delivering video content over the internet.

Minimal Example ​

Create a basic PackagingConfiguration with required properties and one optional property:

ts
import AWS from "alchemy/aws/control";

const basicPackagingConfiguration = await AWS.MediaPackage.PackagingConfiguration("basicPackagingConfig", {
  Id: "basic-config",
  PackagingGroupId: "packaging-group-1",
  HlsPackage: {
    SegmentDurationSeconds: 10,
    PlaylistType: "EVENT" // Optional property
  }
});

Advanced Configuration ​

Configure a PackagingConfiguration with multiple packaging types, including DASH, CMAF, and HLS:

ts
const advancedPackagingConfiguration = await AWS.MediaPackage.PackagingConfiguration("advancedPackagingConfig", {
  Id: "advanced-config",
  PackagingGroupId: "packaging-group-1",
  MssPackage: {
    SegmentDurationSeconds: 10,
    ManifestWindowSeconds: 60,
    StreamSelection: {
      MinVideoBitsPerSecond: 500000,
      MaxVideoBitsPerSecond: 5000000,
      StreamOrder: "ORIGINAL"
    }
  },
  CmafPackage: {
    SegmentDurationSeconds: 10,
    Encryption: {
      SpekeKeyProvider: {
        RoleArn: "arn:aws:iam::123456789012:role/SampleRole",
        Url: "https://example.com/speke",
        CertificateArn: "arn:aws:iam::123456789012:server-certificate/sample-cert"
      }
    }
  },
  DashPackage: {
    SegmentDurationSeconds: 10,
    ManifestLayout: "FULL",
    Profile: "NONE"
  }
});

Tagging and Resource Management ​

Create a PackagingConfiguration with tags for better resource management:

ts
const taggedPackagingConfiguration = await AWS.MediaPackage.PackagingConfiguration("taggedPackagingConfig", {
  Id: "tagged-config",
  PackagingGroupId: "packaging-group-1",
  HlsPackage: {
    SegmentDurationSeconds: 10
  },
  Tags: [
    { Key: "Environment", Value: "Production" },
    { Key: "Project", Value: "VideoStreaming" }
  ]
});

Adoption of Existing Resources ​

Adopt an existing PackagingConfiguration instead of creating a new one if it already exists:

ts
const adoptExistingPackagingConfiguration = await AWS.MediaPackage.PackagingConfiguration("adoptPackagingConfig", {
  Id: "existing-config",
  PackagingGroupId: "packaging-group-1",
  adopt: true // This will adopt the existing resource
});