Dans un paysage médiatique où tout s'accélère, transporter de manière fiable et sécurisée des contenus vidéo de haute qualité à travers les réseaux est devenu indispensable. Que vous soyez diffuseur retransmettant des événements en direct à une audience mondiale, créateur distribuant des vidéos premium vers des plateformes de streaming, ou entreprise gérant ses communications vidéo internes, préserver la qualité tout en garantissant sécurité et fiabilité relève souvent du défi.
C'est précisément là qu'AWS Elemental MediaConnect change la donne. Ce service cloud transforme la manière d'envisager le transport vidéo en proposant un moyen sécurisé, scalable et de haute qualité d'acheminer des flux vidéo sur les réseaux mondiaux. Conçu pour simplifier les workflows de streaming, AWS Elemental MediaConnect élimine la complexité et les coûts des infrastructures traditionnelles.
Pensé pour la performance et la résilience, MediaConnect prend en charge des protocoles sécurisés standard du secteur tels que Zixi, SRT et RIST, garantissant que les contenus arrivent intacts et au plus haut niveau de qualité. Des fonctionnalités comme l'ingest source flexible, les sorties redondantes et l'intégration étroite avec les AWS Media Services (notamment MediaLive et MediaPackage) permettent aux équipes de diffuser des flux impeccables à faible latence — pour vous concentrer sur le contenu, pas sur le pipeline.
AWS Elemental MediaConnect couvre une grande variété de scénarios de distribution vidéo haute qualité, notamment :
- De l'on-premises vers AWS : transportez en toute sécurité la vidéo depuis vos encodeurs de contribution (ou d'autres sources on-prem) vers AWS via des protocoles fiables comme Zixi, SRT ou RIST.
- D'AWS vers l'on-premises : redistribuez la vidéo traitée depuis AWS vers des sites on-premises pour la lecture, le monitoring ou un traitement complémentaire.
- Syndication cloud-to-cloud : partagez vos contenus entre régions AWS ou avec d'autres plateformes cloud pour la redondance ou des stratégies multi-CDN.
- Diffusion sécurisée mondiale : distribuez vos contenus aux utilisateurs finaux ou à vos partenaires partout dans le monde, avec chiffrement et contrôles d'accès intégrés.
Grâce à la fonction d'entitlement de MediaConnect, les clients peuvent partager les coûts de distribution avec leurs abonnés ou clients, et activer ou désactiver l'entitlement d'un simple clic.

Schéma d'architecture
Configurer MediaConnect (Ingest)
Mettre en place un workflow standard de contribution cloud dans MediaConnect
- Créer un flow dans le compte originator : par exemple, source-demoflow-in-originator-us-east-1. J'ai ajouté quelques templates CloudFormation à titre de référence, mais je vais montrer comment créer différents pipelines média et les assembler depuis la console pour une meilleure compréhension.

Création du flow
- Saisissez un nom, laissez la valeur par défaut pour Availability Zone, choisissez Source type → Standard source et sélectionnez le Protocol (par exemple, SRT listener).

Création du flow MediaConnect
Ajoutez un Allowlist CIDR block pour protéger votre flow contre tout usage abusif. J'ai saisi mon adresse IP publique suivie de /32, accompagnée du numéro de port, par exemple 5000. (Plage valide : 1024 à 65535 inclus, à l'exception de 2077 et 2088. Caractères autorisés : 0–9.)
NOTE — Si votre flux est chiffré, vous pouvez activer l'option de déchiffrement.
Vous pouvez stocker la clé de déchiffrement dans AWS Secrets Manager : AWS MediaConnect peut y accéder, à condition que le rôle MediaConnect dispose des permissions de lecture sur ce secret.
- Démarrer le flow :

source-demoflow-in-originator-us-east-1
- Démarrer le stream : j'utilise OBS Studio pour envoyer un flux SRT vers le workflow MediaConnect. Ouvrez OBS et préparez votre stream. Allez dans Settings, puis Stream. Pour Server, saisissez
srt://<Inbound IP Address>:<Port>. Remplacez Inbound IP Address par l'adresse IP entrante de votre flow et Port par son numéro de port. Laissez Stream Key vide. Cliquez sur OK pour fermer la fenêtre Settings.

Diffusion via OBS Studio
Vous pouvez démarrer le stream dans OBS pour l'ingérer dans le flow MediaConnect. Au bout de quelques instants, votre source doit afficher le statut Connected sous Source health, et la vignette du flux vidéo doit apparaître. Votre stream a bien atteint MediaConnect pour la distribution.

Stream sur la source de distribution dans le compte originator
Créer les sorties
Mettre en place un workflow standard de distribution cloud depuis le compte AWS Originator
- Output #1 : par exemple, protocole SRT.
Nous allons créer une sortie en protocole SRT dans le flow d'ingest cloud précédemment configuré (c'est-à-dire source-demoflow-in-originator-us-east-1). Nous récupérerons ensuite le flux vidéo et le lirons en local sur un ordinateur portable avec VLC.
- Ajoutez une sortie dans la section Output du flow MediaConnect (par exemple output-1-srt-listner-from-source-demoflow-in-originator-us-east-1).

Output #1 — protocole SRT
- Démarrez le stream depuis OBS et vérifiez dans VLC que le flux arrive bien.

Output — Status — Connected
- Une fois la sortie MediaConnect configurée, ouvrez les paramètres réseau de VLC et saisissez
srt://<Inbound IP Address>:Portdans le champ URL. Remplacez Inbound IP Address et Port par les valeurs de votre flow, puis cliquez sur Open.

VLC lisant le flux vidéo via le protocole SRT, connecté via la sortie MediaConnect
Note : (Optionnel) À ce jour, il n'est pas possible d'ajouter des Tags à un MediaConnect Flow via un template CloudFormation. Pour ajouter des tags, j'utilise une fonction Lambda, mais vous pouvez aussi passer par la console ou la 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 : accorder une entitlement à un autre compte — Les originateurs de contenu peuvent accorder des entitlements pour partager leurs contenus avec d'autres comptes AWS (les comptes subscriber). Les abonnés peuvent ensuite créer leurs propres flows AWS Elemental MediaConnect en s'appuyant sur le flow de l'originateur comme source.

Grant entitlement 1.1

Grant entitlement 1.2
Note — Vous pouvez ajouter plusieurs comptes dans une même entitlement via l'option Add subscriber.
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
Mettre en place un workflow standard de distribution cloud depuis le compte AWS Subscriber
- Créez un flow MediaConnect dans le compte subscriber vers lequel vous souhaitez envoyer le flux ; l'ARN de l'entitlement doit être disponible au moment de la création.

Flow MediaConnect côté subscriber depuis l'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
- Démarrez les deux flows et lancez le stream.

Stream entrant dans le compte Subscriber via l'entitlement
Connecter MediaConnect à MediaLive
- Output #3 : MediaConnect Flow (compte originator) vers AWS Elemental MediaLive Channel (compte originator dans la même région)
- AWS Elemental MediaLive Channel : commencez par créer un input MediaLive.
- Rendez-vous dans la console du service MediaLive. Ensuite :
- Allez dans Inputs et cliquez sur Create input.
- Sous Input details, donnez un nom descriptif à votre input.
- Pour Input type, sélectionnez MediaConnect.
- Dans la section MediaConnect flows, définissez Input class sur SINGLE_INPUT. Sélectionnez ensuite votre Flow ARN dans la liste déroulante.
- Pour Role ARN, sélectionnez Use existing role et choisissez MediaLiveAccessRole dans les options disponibles.
- Une fois tous les détails saisis, cliquez sur Create pour générer l'input.
Pour en savoir plus sur les rôles, les inputs et AWS Elemental MediaLive, consultez mon article dédié à MediaLive ici.

Input MediaLive 1.1

Input MediaLive 1.2
- Créer un Channel MediaLive — Dans le menu AWS Elemental MediaLive → Channels → Create Channel. Saisissez les informations générales, le Channel name et le rôle IAM.

Channel MediaLive dans le compte originator
- Dans la section Channel template, choisissez Live event HLS. Channel class → Single Pipeline.

Paramètres du Channel MediaLive dans le compte originator
- Sous Input attachments → cliquez sur Add. Dans Attach input, pour Input, choisissez votre input dans la liste déroulante et confirmez.
- Le Channel MediaLive a besoin d'output groups — plusieurs options sont possibles. Pour la démo, j'utilise HLS avec S3 comme destination, par exemple nikhil-medialive-destination. Dans HLS group destination A, pour URL, saisissez l'URL S3 au format suivant. Utilisez le nom du bucket S3 que vous avez créé : s3://nikhil-medialive-destination/live/index.

Paramètres de sortie du Channel MediaLive
- Créez le Channel MediaLive et lancez votre stream depuis OBS. Vous devriez voir le flux atteindre le Channel MediaLive et des fichiers se générer dans votre bucket S3. En option, vous pouvez ajouter une distribution CloudFront sur la sortie HLS et lire votre flux vidéo via l'URL CloudFront, par exemple https://<cloudfront domain name>/live/index.m3u8.

De MediaConnect vers MediaLive
MediaConnect cross-région
- Output #4 : MediaLive (originator — us-east-1) vers MediaConnect (originator — us-west-2)
- Commencez par créer un autre flow MediaConnect, comme précédemment, mais dans une autre région (par exemple, demoflow-in-originator-us-west-2).

Flow MediaConnect
- Si vous activez le déchiffrement, le contenu provenant du Channel MediaLive (us-east-1) sera chiffré. (Note : je le fais ici pour illustrer la partie chiffrement.) Le rôle du flow MediaConnect comme celui de MediaLive devront tous deux avoir accès à la clé de chiffrement/déchiffrement. Cette clé peut être stockée dans AWS Secrets Manager (en us-east-1) et répliquée dans la région de destination (Oregon — us-west-2), car les secrets AWS sont des ressources régionales : sans réplication, MediaConnect n'y accède pas.

- Voici un exemple de policy pour le secret AWS :
{
"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"\
}\
}\
} ]
}
- Configurez maintenant la sortie MediaConnect (us-west-2) dans le Channel MediaLive (us-east-1) en éditant le channel pour finaliser le pipeline média.
- Edit channel → Output group (Add) → SRT → Confirm.

Output group MediaLive — SRT
- Donnez un nom (par exemple, media-connect-srt-oregon) → Settings.

Paramètres de l'output group SRT
- Ajoutez l'URL SRT correspondant à votre endpoint MediaConnect (us-east-2) avec le port, au format
srt://<Inbound IP Address>:<Port>, et sélectionnez le secret.

Endpoint SRT
Vérifier vos workflows
Une fois vos inputs configurés, l'étape suivante, essentielle, consiste à démarrer tous les workflows ainsi que votre Channel MediaLive. Cela permet de vérifier que toutes les sorties atteignent bien leurs destinations et que chaque pipeline fonctionne correctement. Comme illustré ci-dessous, le pipeline livre le contenu vers tous les endpoints configurés.
Voici comment se décompose un flux de contenu type :
Côté Originator (compte AWS 2111XXXXXXXX) :
- OBS (MAC) envoie le stream initial.
- Ce flux est routé vers le flow MediaConnect nikhil-demoflow (us-east-1).
- De là, il est livré à VLC (srt://3.233.7.232:5555) pour vérification locale.
- Le stream alimente également le Channel Elemental MediaLive — nikhil-obs-channel (us-east-1).
- Le stream alimente aussi le flow MediaConnect — stream-from-account-2111XXXXXXXX-flow (us-east-1) dans le compte subscriber (compte AWS 7227XXXXXXXX).
- Dans le compte originator, le stream va du flow MediaConnect nikhil-demoflow (us-east-1) vers nikhil-demoflow-oregon (us-west-2).

Flow MediaConnect — us-west-2
Workflow Subscriber
Output #5 : pipeline depuis l'endpoint MediaConnect du compte Subscriber vers un Channel AWS Elemental MediaLive
Pour cette étape, je vais déployer rapidement le Channel MediaLive dans le compte subscriber via le Workflow Wizard. Pour plus de détails sur le Workflow Wizard, consultez mon article.
Cette fois, plutôt qu'une entitlement (vers un compte), je vais créer une sortie dans le flow MediaConnect, qui servira d'input au Channel MediaLive du compte subscriber.

Sortie du flow Subscriber
- Créez un input (type MediaConnect) comme précédemment et déployez le Channel MediaLive.

Workflow Subscriber — Channel MediaLive
- Pour finir, démarrez l'ensemble des workflows MediaConnect et des Channels MediaLive, puis lancez le stream.

Aperçu MediaPackage
De l'ingest à la diffusion, AWS Elemental MediaConnect constitue la colonne vertébrale de workflows vidéo scalables et hautement performants. En associant MediaLive pour le traitement temps réel, MediaPackage pour le packaging à la volée et CloudFront pour la distribution mondiale — couplés à AWS Secrets Manager pour stocker et gérer les clés de chiffrement en toute sécurité —, les diffuseurs peuvent protéger leurs contenus tout en les acheminant sans accroc vers des endpoints publics ou privés. À mesure que les exigences de la vidéo live évoluent, cette architecture illustre comment les AWS Media Services masquent la complexité de l'infrastructure : les équipes se concentrent sur l'innovation plutôt que sur les contraintes opérationnelles.

Visualisation finale du pipeline
Nettoyage
Supprimez l'ensemble des ressources déployées :
Channels MediaLive — subscriber-workflow, medialive-channel-in-originator
Flows MediaConnect — source-demoflow-in-originator-us-east-1, subscriber-flow-from-originator-entitlement, demoflow-in-originator-us-west-2
Secret Secrets Manager — medialive-secret (supprimez la réplication du secret puis supprimez-le en us-east-1 dans le compte originator)
Input MediaLive — input-for-medialive-originator (créé séparément)
Que vous bâtissiez une plateforme de streaming ou que vous exploriez les capacités média d'AWS, j'espère que ce tutoriel vous aura aidé à y voir plus clair sur la mise en place des pipelines MediaConnect et de leurs différentes intégrations. De la conception d'architectures cloud à l'automatisation de l'infrastructure, DoiT International met à votre disposition une expertise complète pour moderniser votre infrastructure cloud. Contactez-nous ici pour découvrir nos solutions d'ingénierie cloud.