Didacticiels sur le streaming multimédia avec Amazon CloudFront
Pourquoi choisir Amazon CloudFront ?
Les clients utilisent Amazon CloudFront pour diffuser en streaming des vidéos pour des utilisateurs du monde entier à l'aide de divers protocoles en couche par-dessus HTTP.
Le réseau de diffusion de contenu Amazon CloudFront peut être utilisé avec les services multimédias AWS Elemental pour mettre en place deux types de diffusion de vidéo en streaming différents. Dans un premier temps, nous allons aborder la diffusion en streaming de contenu à la demande stocké dans Amazon Simple Storage Service (Amazon S3). Après cela, nous allons examiner le streaming en direct d'événements ou les canaux 24x7.
Pour connaître les bonnes pratiques, consultez le livre blanc Amazon CloudFront pour le secteur des médias.
Création de flux de travail vidéo sans serveur
Streaming à la demande
Dans le cas du streaming à la demande, votre contenu vidéo est stocké dans Amazon S3. Vos utilisateurs peuvent choisir de le regarder au moment souhaité, d'où l'appellation « à la demande ». Une solution de streaming à la demande complète utilise généralement Amazon S3 pour le stockage, AWS Elemental MediaConvert pour le traitement de vidéos sur fichier et Amazon CloudFront pour la diffusion.
Amazon S3 est une excellente solution de stockage pour vos ressources vidéo. Elle est infiniment évolutive, dispose d'une redondance intégrée et est disponible sur une base de paiement à l'utilisation. Vous pouvez charger votre contenu vers S3 de différentes façons. Vous pouvez commencer en utilisant AWS Management Console en cas de faible volume, puis passer à un système plus automatisé avec l’augmentation de votre volume. L'utilisation de S3 à partir de la console est très simple. Après la création de votre compte AWS, il vous suffit de vous connecter, de créer un compartiment S3 et de charger votre contenu. Si vous souhaitez mettre en place un système automatisé, vous pouvez utiliser l’Interface de ligne de commande AWS dans vos propres scripts ou les API d’Amazon S3 dans votre propre code.
Une fois votre vidéo chargée, vous devrez probablement la convertir dans la taille, la résolution ou le format requis pour une télévision ou un appareil connecté spécifiques. AWS Elemental MediaConvert peut le faire pour vous. MediaConvert prend le contenu sur S3, le transcode sur votre demande et stocke le résultat de nouveau dans S3. Le transcodage traite les fichiers vidéo, crée des versions compressées du contenu original pour réduire la taille, modifier le format ou augmenter la compatibilité avec les appareils de lecture. Encore une fois, vous pouvez gérer ce processus à partir d’AWS Management Console, la ligne de commande ou via les API de MediaConvert.
Avec votre contenu stocké de manière sécurisée et disponible dans les formats requis par vos utilisateurs, l'étape suivante consiste en la distribution mondiale grâce à Amazon CloudFront. Le réseau de diffusion de contenu Amazon met en cache du contenu en périphérie pour assurer une distribution des vidéos à faible latence et haut débit. Son évolutivité signifie que vous pouvez fournir autant de vidéos que vous le souhaitez, qu'elles soient nombreuses ou non. Vous pouvez gérer les pics de demande inattendus en toute simplicité sur une base de paiement à l’utilisation (cf. la tarification de CloudFront pour en savoir plus).
C'est à ce moment-là que deux options s'offrent à vous. Vous pouvez distribuer la totalité du fichier vidéo sur l'appareil avant la lecture ou vous pouvez le diffuser sur l'appareil.
La première option est très simple à mettre en place et est prise en charge par à peu près tous les appareils mobiles et fixes. Tout ce que vous avez à faire, c'est placer votre contenu dans un compartiment S3 et créer une distribution CloudFront dirigeant vers le compartiment. Le lecteur vidéo de l'utilisateur utilisera les URL de CloudFront (accessibles dans le cadre de la distribution) pour demander le fichier vidéo. La requête sera dirigée vers l'emplacement périphérique le plus proche de l'emplacement de l'utilisateur. le réseau de diffusion de contenu fournira la vidéo à partir de son cache ou ira la récupérer dans le compartiment S3 si elle n'est pas déjà dans le cache. Cette option présente quelques inconvénients. Elle monopolise de manière inefficace la bande passante de l'utilisateur. Si l'utilisateur n'a pas envie de regarder la totalité de la vidéo, le contenu qui ne sera pas visionné sera quand même téléchargé et vous paierez pour ce contenu.
La deuxième option est souvent privilégiée. Une famille de protocoles de streaming vidéo comprenant Apple’s HTTP Live Streaming (HLS), Dynamic Adaptive Streaming over HTTP (DASH), Microsoft’s Smooth Streaming (MSS) et Adobe’s HTTP Dynamic Streaming (HDS) qui améliore l’expérience de l’utilisateur en fournissant des vidéos pendant qu’elles sont visionnées et allant généralement le contenu quelques secondes avant qu’il ne soit requis. La lecture commence plus rapidement, l'avance rapide est plus efficace et l'expérience générale est plus fluide. Avec cette option, vous ne payez que le contenu visionné par l'utilisateur, il n'y a pas de gâchis de bande passante de l'utilisateur et ce dernier peut visionner le contenu souhaité plus rapidement.
Pour mettre en place la deuxième option, vous aurez un peu plus de travail préalable à réaliser. Tout d'abord, vous devez utiliser MediaConvert pour convertir vos fichiers vidéo au format HLS, le protocole de streaming le plus généralement pris en charge. Le service divisera la vidéo en petits segments et créera également un fichier manifeste. Ensuite, vous devez indiquer la distribution CloudFront dans le manifeste. Enfin, pour lire le flux en direct, intégrez l'URL du manifeste dans les lecteurs de telle sorte que vos utilisateurs puisse l'utiliser pour lire votre flux en direct. Par exemple, pour lire une diffusion en direct pour laquelle le fichier manifeste est myStream/playlist.m3u8 et la distribution CloudFront est d111111abcdef8.cloudfront.net, vous intégrez l'URL suivante aux lecteurs : http://d111111abcdef8.cloudfront.net/myStream/playlist.m3u8.
La page « Vidéo à la demande sur AWS » donne les bonnes pratiques et la marche à suivre pour déterminer quand mettre en place un flux de travail de vidéo à la demande sur le cloud AWS, et présente une solution AWS qui fournit automatiquement les services nécessaires à la création d’une architecture évolutive et distribuée capable d’accueillir, stocker, traiter et distribuer du contenu vidéo.
Streaming en direct
Dans le cas du streaming en direct, votre contenu représente des événements en direct ou la diffusion en direct 24 h/24, 7 j/7. Par exemple, il peut s'agir de la diffusion de tournois sportifs, de cérémonies de récompense, de présentations et autres événements en direct largement visionnés et fournis par les diffuseurs et agrégateurs de contenu. Parmi ces diffuseurs et agrégateurs, vous trouverez des studios, des diffuseurs ou encore des opérateurs de services audiovisuels payants cherchant à regrouper et distribuer des canaux linéaires en direct sur Internet directement auprès de leurs audiences et sans plateforme de distribution tierce.
Vous pouvez utiliser AWS pour diffuser de manière rentable du contenu en direct auprès d'une audience mondiale en suivant quelques étapes simples.
La première étape est le traitement vidéo en direct. Pour cela, vous pouvez utiliser AWS Elemental MediaLive qui encode vos flux vidéo en direct en temps réel avec une source vidéo directe plus grande (par exemple, en provenance d’un encodeur sur site comme AWS Elemental Live) et les compresse en plus petites versions pour les distribuer aux utilisateurs. Pour la deuxième étape, deux options s'offrent à vous en fonction de votre cas d'utilisation. Vous pouvez utiliser une origine de regroupement sur le moment comme AWS Elemental MediaPackage pour convertir le contenu vidéo à partir d’un seul format en plusieurs formats et le regrouper de manière sécurisée pour différents types d’appareils. MediaPackage facilite l'implémentation de fonctionnalités vidéo appréciées par les utilisateurs (la fonction Start-Over, pause, rembobinage, etc.), telles que celles que l'on trouve généralement sur les magnétoscopes numériques. Le service peut également protéger votre contenu à l'aide des de gestion des droits numériques (DRM). Autrement, si l’encodeur convertit déjà le contenu dans le format requis par tous les appareils d’utilisateur final cibles, vous pouvez utiliser une origine évolutive hautes performances comme AWS Elemental MediaStore. MediaPackage et MediaStore fournissent du contenu à Amazon CloudFront qui acheminera ce dernier vers l'audience qui visionne l'événement en direct.
Une fois votre solution prête à l'emploi, l'événement en direct peut être diffusé partout dans le monde de manière évolutive et économique. Le réseau de diffusion de contenu peut s’adapter à une audience de taille variable et gérer les « flash crowds ».
La page « Streaming de vidéo en direct » donne les bonnes pratiques et la marche à suivre pour déterminer quand choisir un flux de travail de streaming de vidéo en direct sur le cloud AWS, et présente une solution AWS fournissant automatiquement les services nécessaires pour créer une architecture haute disponible et économique proposant une expérience de visionnage en temps réel exceptionnelle.