In der schnelllebigen Medienlandschaft von heute ist es unverzichtbar, hochwertige Videoinhalte zuverlässig und sicher über Netzwerke zu transportieren. Ob Sie als Broadcaster Live-Events an ein globales Publikum ausspielen, als Content Creator Premium-Videos an Streaming-Plattformen ausliefern oder als Unternehmen die interne Videokommunikation steuern – Videoqualität, Sicherheit und Zuverlässigkeit gleichzeitig sicherzustellen, ist alles andere als trivial.
Genau hier setzt AWS Elemental MediaConnect an. Der cloud-basierte Service verändert grundlegend, wie sich Video transportieren lässt: hochwertig, skalierbar und sicher über globale Netzwerke hinweg. AWS Elemental MediaConnect vereinfacht Streaming-Workflows und macht die Komplexität und Kosten klassischer Infrastruktur überflüssig.
MediaConnect ist auf Performance und Resilienz ausgelegt und unterstützt branchenübliche sichere Protokolle wie Zixi, SRT und RIST. So kommen Inhalte unverfälscht und in höchster Qualität an. Funktionen wie flexibler Source-Ingest, redundante Outputs und die enge Integration mit AWS Media Services (etwa MediaLive und MediaPackage) ermöglichen Teams, einwandfreie Streams mit niedriger Latenz auszuliefern – damit Sie sich auf Ihre Inhalte konzentrieren können statt auf die Pipeline.
AWS Elemental MediaConnect deckt eine ganze Reihe hochwertiger Distributionsszenarien ab, darunter:
- On-Premises zu AWS: Sicherer Video-Transport von Contribution-Encodern (oder anderen On-Prem-Quellen) nach AWS über zuverlässige Protokolle wie Zixi, SRT oder RIST.
- AWS zu On-Premises: Verarbeitete Videoinhalte aus AWS zurück an On-Premises-Standorte ausspielen – für Playback, Monitoring oder Weiterverarbeitung.
- Cloud-to-Cloud-Syndication: Inhalte über AWS-Regionen hinweg oder mit anderen Cloud-Plattformen teilen, etwa für Redundanz oder Multi-CDN-Strategien.
- Globale, sichere Auslieferung: Inhalte weltweit an Endnutzer oder Partner ausliefern – mit integrierter Verschlüsselung und Zugriffskontrolle.
Über die Entitlement-Funktion von MediaConnect lassen sich Distributionskosten mit Abonnenten oder Kunden teilen; Entitlements können per Klick aktiviert oder deaktiviert werden.

Architekturdiagramm
MediaConnect einrichten (Ingest)
Standard-Cloud-Contribution-Workflow in MediaConnect einrichten
- Flow im Originator-Account anlegen: z. B. source-demoflow-in-originator-us-east-1. Ich habe einige CloudFormation-Templates als Referenz beigefügt, zeige aber zum besseren Verständnis, wie sich die einzelnen Media-Pipelines über die Konsole erstellen und miteinander verknüpfen lassen.

Flow erstellen
- Namen vergeben, Availability Zone auf dem Standardwert belassen, Source type → Standard source, Protocol wählen (z. B. SRT listener).

MediaConnect Flow erstellen
Hinterlegen Sie einen Allowlist-CIDR-Block, um Ihren Flow vor Missbrauch zu schützen. Ich habe meine öffentliche IP-Adresse mit /32 sowie die Portnummer eingetragen, z. B. 5000. (Gültiger Bereich: 1024 bis 65535 inklusive, ausgenommen 2077 und 2088. Erlaubte Zeichen: 0–9.)
HINWEIS: Ist Ihr Stream verschlüsselt, können Sie die Decryption-Option wählen.
Den Decryption-Schlüssel können Sie im AWS Secrets Manager hinterlegen. AWS MediaConnect kann darauf zugreifen, sofern die MediaConnect-Rolle die Berechtigung hat, dieses Secret zu lesen.
- Flow starten:

source-demoflow-in-originator-us-east-1
- Stream starten: Ich verwende OBS Studio, um einen SRT-Stream an den MediaConnect-Workflow zu senden. OBS öffnen und Stream vorbereiten. In OBS auf Einstellungen und dann auf Stream klicken. Bei Server
srt://<Inbound IP Address>:<Port>eintragen. Inbound IP Address durch die Inbound-IP-Adresse Ihres Flows ersetzen und Port durch die Portnummer Ihres Flows. Stream Key leer lassen. Mit OK den Dialog Einstellungen schließen.

Übertragung über OBS Studio
Starten Sie das Streaming in OBS, um den Ingest auf dem MediaConnect-Flow auszulösen. Nach kurzer Zeit sollte Ihre Quelle unter Source health den Status Connected anzeigen, und Sie sehen das Thumbnail des Videostreams. Damit hat Ihr Stream MediaConnect erfolgreich für die Distribution erreicht.

Stream an der Distribution-Source im Originator-Account
Outputs erstellen
Standard-Cloud-Distributions-Workflow aus dem AWS-Originator-Account einrichten
- Output #1: z. B. SRT-Protokoll
Wir erstellen nun einen Output mit SRT-Protokoll in unserem zuvor konfigurierten Cloud-Ingest-Flow (source-demoflow-in-originator-us-east-1). Anschließend empfangen wir den Videostream und spielen ihn lokal über den VLC-Player ab.
- Im Output-Bereich des MediaConnect-Flows einen Output hinzufügen (z. B. output-1-srt-listner-from-source-demoflow-in-originator-us-east-1).

Output #1 — SRT-Protokoll
- Streaming aus OBS starten und in VLC prüfen, ob der Stream ankommt.

Output — Status — Connected
- Bei konfiguriertem MediaConnect-Output die Netzwerk-Einstellungen in VLC öffnen und im URL-Feld
srt://<Inbound IP Address>:Porteintragen. Inbound IP Address und Port durch die Werte Ihres Flows ersetzen, dann auf Open klicken.

VLC spielt den Videostream über das SRT-Protokoll ab, verbunden über den MediaConnect-Output-Flow
Hinweis (optional): Aktuell lassen sich Tags nicht über ein CloudFormation-Template an einem MediaConnect-Flow setzen. Ich nutze dafür eine Lambda-Funktion; alternativ funktioniert das auch über die Konsole oder die CLI.
AWSTemplateFormatVersion: '2010-09-09'
Description: Create an AWS MediaConnect flow with an SRT listener source
Resources:
MediaConnectFlow:
Type: AWS::MediaConnect::Flow
Properties:
AvailabilityZone: us-east-1a
Name: source-demoflow-in-originator-us-east-1
Source:
Name: nikhil-mac
Description: nikhil-mac-machine
Protocol: srt-listener
IngestPort: 5000
WhitelistCidr: 0.0.0.0/0 # Replace with a specific IP range for security
SourceMonitoringConfig:
ThumbnailState: ENABLED
MediaConnectFlowOutput:
Type: AWS::MediaConnect::FlowOutput
Properties:
FlowArn: !Ref MediaConnectFlow
Name: output-1-srt-listner-from-source-demoflow-in-originator-us-east-1
Description: Output-1-for-site-1-VLC
Protocol: srt-listener
Port: 2222
MinLatency: 2000
CidrAllowList:
- 0.0.0.0/0
TaggingLambdaRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service: lambda.amazonaws.com
Action: sts:AssumeRole
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Policies:
- PolicyName: MediaConnectTaggingPolicy
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- mediaconnect:TagResource
Resource: !Sub 'arn:aws:mediaconnect:${AWS::Region}:${AWS::AccountId}:flow:*'
TaggingLambda:
Type: AWS::Lambda::Function
Properties:
Runtime: python3.9
Handler: index.handler
Role: !GetAtt TaggingLambdaRole.Arn
Timeout: 30
Code:
ZipFile: |
import boto3
import cfnresponse
def handler(event, context):
if event['RequestType'] in ['Create', 'Update']:
try:
client = boto3.client('mediaconnect')
flow_arn = event['ResourceProperties']['FlowArn']
tags = [\
{'Key': 'name', 'Value': 'source-demoflow-in-originator-us-east-1'},\
{'Key': 'account', 'Value': '2111XXXXXXXX'},\
{'Key': 'created_by', 'Value': 'cloudformation'},\
{'Key': 'type', 'Value': 'originator'}\
]
tag_dict = {}
for tag in tags:
tag_dict[tag['Key']] = tag['Value']
client.tag_resource(
ResourceArn=flow_arn,
Tags=tag_dict
)
cfnresponse.send(event, context, cfnresponse.SUCCESS, {})
except Exception as e:
print(f"Error tagging MediaConnect Flow: {str(e)}")
cfnresponse.send(event, context, cfnresponse.FAILED, {})
else:
cfnresponse.send(event, context, cfnresponse.SUCCESS, {})
MediaConnectFlowTags:
Type: Custom::MediaConnectFlowTags
DependsOn: MediaConnectFlow
Properties:
ServiceToken: !GetAtt TaggingLambda.Arn
FlowArn: !Ref MediaConnectFlow
Outputs:
FlowArn:
Description: ARN of the MediaConnect Flow
Value: !Ref MediaConnectFlow
FlowOutputArn:
Description: ARN of the MediaConnect Flow Output
Value: !Ref MediaConnectFlowOutput
- Output #2: Entitlement an einen anderen Account vergeben — Content-Originatoren können Entitlements vergeben, um ihre Inhalte mit anderen AWS-Accounts (Subscriber-Accounts) zu teilen. Subscriber können dann eigene AWS Elemental MediaConnect Flows einrichten und den Flow des Originators als Quelle nutzen.

Entitlement vergeben 1.1

Entitlement vergeben 1.2
Hinweis: Über "Add subscriber" lassen sich in einem Entitlement mehrere Accounts hinzufügen.
MediaConnectFlowEntitlement:
Type: AWS::MediaConnect::FlowEntitlement
Properties:
FlowArn: !Ref MediaConnectFlow
Name: entitlement-for-subscriber-account-7227XXXXXXXX
Description: Entitlement for subscriber account
Subscribers:
- "7227XXXXXXXX"
DataTransferSubscriberFeePercent: 100
EntitlementStatus: ENABLED
Standard-Cloud-Distributions-Workflow aus dem AWS-Subscriber-Account einrichten
- MediaConnect-Flow erstellen – im Subscriber-Account, an den der Stream gehen soll. Beim Anlegen muss der Entitlement-ARN verfügbar sein.

MediaConnect-Flow im Subscriber-Account aus Entitlement
#Sample Cloudformation template with Entilement
AWSTemplateFormatVersion: '2010-09-09'
Description: Subscriber MediaConnect flow using an entitlement from another account
Resources:
SubscriberMediaConnectFlow:
Type: AWS::MediaConnect::Flow
Properties:
AvailabilityZone: us-east-1a
Name: subscriber-flow-from-originator-entitlement
Source:
Name: entitlement-source
Description: Source from entitlement
EntitlementArn: arn:aws:mediaconnect:us-east-1:2111XXXXXXXX:entitlement:1-WgUJUgRTAlJeUghT-b1637ab66a4c:entitlement-for-subscriber-account-7227XXXXXXXX
SourceMonitoringConfig:
ThumbnailState: ENABLED
- Beide Flows starten und das Streaming beginnen.

Stream kommt im Subscriber-Account über Entitlement an
MediaConnect mit MediaLive verbinden
- Output #3: MediaConnect-Flow (Originator-Account) zum AWS Elemental MediaLive Channel (Originator-Account, gleiche Region)
- AWS Elemental MediaLive Channel: Zuerst einen MediaLive-Channel-Input anlegen.
- Öffnen Sie zunächst die MediaLive-Konsole. Von dort:
- Zu Inputs wechseln und auf Create input klicken.
- Unter Input details einen aussagekräftigen Namen vergeben.
- Als Input type MediaConnect auswählen.
- Im Bereich MediaConnect flows die Input class auf SINGLE_INPUT setzen. Anschließend den passenden Flow ARN aus dem Dropdown wählen.
- Bei Role ARN Use existing role wählen und Ihre MediaLiveAccessRole aus den verfügbaren Optionen übernehmen.
- Sind alle Angaben gemacht, mit Create den Input anlegen.
Mehr zu Rollen, Inputs und AWS Elemental MediaLive finden Sie in meinem MediaLive-Blog hier.

MediaLive Input 1.1

MediaLive Input 1.2
- MediaLive Channel anlegen — Im Menü AWS Elemental MediaLive → Channels → Create Channel. Allgemeine Angaben, Channel name und IAM-Rolle eintragen.

MediaLive Channel im Originator
- Im Bereich Channel template Live event HLS wählen. Channel class → Single Pipeline.

Einstellungen des MediaLive Channels im Originator
- Unter Input attachments auf Add klicken. Bei Attach input unter Input Ihren Input aus dem Dropdown wählen und bestätigen.
- Ein MediaLive Channel braucht Output-Groups – dafür gibt es mehrere Optionen. Für die Demo verwende ich HLS mit S3 als Ziel, z. B. nikhil-medialive-destination. Bei HLS group destination A als URL die S3-URL im folgenden Format eintragen, mit dem Namen Ihres erstellten S3-Buckets: s3://nikhil-medialive-destination/live/index.

Einstellungen für die MediaLive-Channel-Outputs
- MediaLive-Channel anlegen und den Stream aus OBS starten. Sie sollten sehen, dass der Stream im MediaLive-Channel ankommt und Dateien in Ihrem S3-Bucket erzeugt werden. Optional können Sie eine CloudFront-Distribution auf den HLS-Output legen und den Videostream über die CloudFront-URL abspielen, z. B. https://<cloudfront domain name>/live/index.m3u8.

MediaConnect zu MediaLive
Cross-Region MediaConnect
- Output #4: MediaLive (im Originator — us-east-1) zu MediaConnect (im Originator — us-west-2)
- Zunächst einen weiteren MediaConnect-Flow wie zuvor anlegen, allerdings in einer anderen Region (z. B. demoflow-in-originator-us-west-2).

MediaConnect Flow
- Wählen Sie Decryption, werden Inhalte aus dem MediaLive Channel (us-east-1) verschlüsselt übertragen. (Hinweis: Ich aktiviere das hier, um den Verschlüsselungsteil zu zeigen.) Sowohl die MediaConnect-Flow-Rolle als auch die MediaLive-Rolle benötigen Zugriff auf den Encryption-/Decryption-Schlüssel. Dieser kann im AWS Secrets Manager (in us-east-1) gespeichert und in die Zielregion (Oregon — us-west-2) repliziert werden, da AWS Secrets regionale Ressourcen sind und MediaConnect ohne Replikation nicht darauf zugreifen kann.

- Beispiel-Policy für ein AWS-Secret:
{
"Version" : "2012-10-17",
"Statement" : [ {\
"Sid" : "AllowMediaConnectGetSecretValue",\
"Effect" : "Allow",\
"Principal" : {\
"Service" : "mediaconnect.amazonaws.com"\
},\
"Action" : "secretsmanager:GetSecretValue",\
"Resource" : [\
"arn:aws:secretsmanager:us-east-1:2111XXXXXXXX:secret:medialive-secret-us-east-1-jedikQ",\
"arn:aws:secretsmanager:us-west-2:2111XXXXXXXX:secret:medialive-secret-us-east-1-jedikQ" ],\
"Condition" : {\
"StringEquals" : {\
"aws:SourceAccount" : "2111XXXXXXXX"\
}\
}\
}, {\
"Sid" : "AllowMediaConnectListSecrets",\
"Effect" : "Allow",\
"Principal" : {\
"Service" : "mediaconnect.amazonaws.com"\
},\
"Action" : "secretsmanager:ListSecrets",\
"Resource" : "*",\
"Condition" : {\
"StringEquals" : {\
"aws:SourceAccount" : "2111XXXXXXXX"\
}\
}\
}, {\
"Sid" : "AllowMediaLiveAccessRoleGetSecretValue",\
"Effect" : "Allow",\
"Principal" : {\
"AWS" : "arn:aws:iam::2111XXXXXXXX:role/MediaLiveAccessRole"\
},\
"Action" : "secretsmanager:GetSecretValue",\
"Resource" : [ "arn:aws:secretsmanager:us-east-1:211125713318:secret:medialive-secret-us-east-1-jedikQ", "arn:aws:secretsmanager:us-west-2:211125713318:secret:medialive-secret-us-east-1-jedikQ" ],\
"Condition" : {\
"StringEquals" : {\
"aws:SourceAccount" : "2111XXXXXXXX"\
}\
}\
} ]
}
- Konfigurieren Sie nun den MediaConnect-Output (us-west-2) im MediaLive Channel (us-east-1), indem Sie den Channel bearbeiten und damit die Media-Pipeline schließen.
- Channel bearbeiten → Output group (Add) → SRT → Bestätigen

MediaLive Output Group — SRT
- Namen vergeben (z. B. media-connect-srt-oregon) → Settings

Einstellungen der Output SRT Group
- SRT-URL als Ihren MediaConnect-Endpoint (us-east-2) inklusive Port im Format
srt://<Inbound IP Address>:<Port>hinterlegen und das Secret auswählen.

SRT-Endpoint
Workflows verifizieren
Sind die Inputs konfiguriert, geht es im nächsten Schritt darum, alle Workflows und Ihren MediaLive-Channel zu starten. So stellen Sie sicher, dass alle Outputs ihre Ziele erreichen und jede Pipeline sauber funktioniert. Wie unten zu sehen, liefert die Pipeline Inhalte zuverlässig an alle konfigurierten Endpoints.
So sieht der typische Content-Flow aus:
Originator-Seite (AWS Account 2111XXXXXXXX):
- OBS (MAC) sendet den initialen Stream.
- Der Stream wird zum MediaConnect-Flow nikhil-demoflow (us-east-1) geroutet.
- Von dort gelangt er zur lokalen Verifikation an VLC (srt://3.233.7.232:5555).
- Zudem wird der Stream in den Elemental MediaLive Channel — nikhil-obs-channel (us-east-1) eingespeist.
- Außerdem geht er an den MediaConnect-Flow stream-from-account-2111XXXXXXXX-flow (us-east-1) im Subscriber-Account (AWS Account 7227XXXXXXXX).
- Innerhalb des Originator-Accounts fließt der Stream vom MediaConnect-Flow nikhil-demoflow (us-east-1) zu nikhil-demoflow-oregon (us-west-2).

MediaConnect Flow — us-west-2
Subscriber-Workflow
Output #5: Pipeline vom MediaConnect-Endpoint des Subscriber-Accounts zum AWS Elemental MediaLive Channel
Dafür rolle ich den MediaLive Channel im Subscriber-Account zügig per Workflow Wizard aus. Mehr Details zum Workflow Wizard finden Sie in meinem Blog.
Statt eines Entitlements (für einen Account) erstelle ich diesmal einen Output im MediaConnect-Flow, der als Input für den MediaLive-Channel im Subscriber-Account dient.

Subscriber-Flow – Output
- Wie zuvor einen Input (Type: mediaconnect) anlegen und den MediaLive-Channel ausrollen.

Subscriber-Workflow – MediaLive Channel
- Abschließend alle MediaConnect-Workflows und MediaLive-Channels starten und mit dem Streaming beginnen.

MediaPackage Preview
Vom Ingest bis zur Auslieferung bildet AWS Elemental MediaConnect das Rückgrat skalierbarer, performanter Video-Workflows. Mit MediaLive für die Echtzeit-Verarbeitung, MediaPackage für Just-in-Time-Packaging und CloudFront für die globale Distribution – flankiert vom AWS Secrets Manager zur sicheren Verwaltung der Verschlüsselungs-Keys – schützen Broadcaster ihre Inhalte und liefern sie nahtlos an öffentliche oder private Endpoints aus. Während sich die Anforderungen an Live-Video weiterentwickeln, zeigt diese Architektur, wie AWS Media Services die Komplexität der Infrastruktur abstrahieren – damit sich Teams auf Innovation konzentrieren können statt auf operativen Overhead.

Visualisierung der finalen Pipeline
Cleanup
Alle ausgerollten Ressourcen löschen:
MediaLive Channels — subscriber-workflow, medialive-channel-in-originator
MediaConnect Flows — source-demoflow-in-originator-us-east-1, subscriber-flow-from-originator-entitlement, demoflow-in-originator-us-west-2
Secrets Manager Secret — medialive-secret (Secret-Replikation entfernen und in us-east-1 im Originator-Account löschen)
MediaLive Input — input-for-medialive-originator (separat erstellt)
Egal, ob Sie eine Streaming-Plattform aufbauen oder die Media-Funktionen von AWS ausloten – ich hoffe, dieser Walkthrough hat das Setup von MediaConnect-Pipelines und ihren Integrationen greifbarer gemacht. Vom Cloud-Architektur-Design bis zur Infrastrukturautomatisierung bietet DoiT International umfassende Expertise, um Ihre Cloud-Infrastruktur zu modernisieren. Sprechen Sie uns hier an und erfahren Sie mehr über unsere Cloud-Engineering-Lösungen.