/ Accueil / English
Amazon Web Services

Amazon Web Services : les bases de la conversion de médias via AWS

Mise en contexte

L’audio et le vidéo sont des formes de médias de plus en plus fréquents dans les projets Web modernes. Avec l’usage accru de ces médias émergent un certains nombres de problématiques: les limitations de l’espace disque, la mise en place d’une infrastructure de conversion, la gestion de la bande passante, etc. Il existe plusieurs options disponibles pour simplifier ces diverses problématiques. Il est possible de se décharger de ces fardeaux en faisant usage de services tiers utilisant des parcs informatiques immenses. Se faisant les coûts de production et de développement sont coupés à une infime fraction de ce qu’ils auraient pu êtres, tout ceci grâce à la prévalence actuelle des technologies présentes « dans les nuages » à l’ère du « cloud-computing ».

Avant de poursuivre : Sachez que cet article ne présentera pas de code. Il fait office d’introduction aux notions de base qui sont impliqués dans l’usage d’Amazon Web Services (AWS) dans le cadre d’un projet mettant de l’avant l’hébergement et/ou la conversion de fichiers de médias, potentiellement à grande échelle. Conséquemment, cet article est une documentation souhaitable pour les planificateurs et gestionnaires de projets ou les programmeurs souhaitant un point d’entrée dans l’usage de ces technologies.

Amazon Web Services à la rescousse !

Le terme « cloud computing » est tellement présent dans le domaine des technologies de l’information qu’il est devenu irritant aux oreilles de plusieurs. L’usage primaire du « nuage » pour bon nombre d’utilisateurs, c’est le stockage. Cependant, il y a tout un univers de possibilité au-delà du simple stockage de données. Pour des opérations plus musclées, outre les disques durs des centres de données, pourquoi ne pas mettre les processeurs de millions d’ordinateurs à contribution? Avec une telle puissance, l’utilisateur moyen est en mesure de réaliser très rapidement des tâches qui prendraient un temps incalculable avec les maigres ressources de son propre poste.

Je ne veux pas promouvoir délibérément les services d’Amazon, mais la réalité est que j’ai eu des expériences très positives avec leurs services. Bien qu’ils ne soient pas les seuls à offrir des services de cloud-computing, la variété croissante de services qu’ils offrent(plus de 70 au moment d’écrire ces lignes) et l’interopérabilité entre-eux en font un choix aisé, ne serait-ce que d’un point de vue strictement logistique. Si vous désirez utiliser le cloud pour une opération en particulier, il est fort probable qu’Amazon y a déjà pensé et que le service désiré est déjà compatible avec une panoplie de services connexes qui complémenteront et vous permettront d’étendre ultérieurement les fonctionnalités de votre produit. De plus, la majeure partie des services d’Amazon Web Services proposent un pallier d’usage gratuit mensuel conséquent qui est suffisant pour tester les services à fond ou faire le développement de l’application avant la mise en production. Au-delà du pallier d’usage gratuit, la majeure partie des services AWS utilisent un modèle de facturation « à l’usage ». Les détails sont passablement complexes & varient d’un service à un autre. Je vous invite à vous familiariser avec les grilles de tarification des services qui vous intéressent avant de vous lancer dans le développement, mais dans l’ensemble, les coûts sont très compétitifs et avantageux.

Ce qu’on veut : Essentiellement Youtube, Deezer ou Netflix

Notre projet requiert 2 composants majeurs :

  • Un hébergeur avec suffisamment d’espace pour nos fichiers média.
  • Un convertisseurs afin de s’assurer de pouvoir fournir les médias dans des formats souhaitables. Ceci peut impliquer des variations dans la qualité du vidéo ou de l’audio(taux d’images par secondes, résolution, format, nombre de canaux audio, compression, etc.)

Au niveau d’Amazon Web Services, ces composants sont :

Comment ça fonctionne…

Sommairement, voici comment interagirons ces 2 composants :

  1. Sur Amazon S3, les espaces de stockage sont divisés en « Buckets »(seau). Ces « Buckets » sont configurés et nommés par le détenteur du compte ou une personne autorisée.
  2. On doit déposer manuellement(ou via une interface programmée) les fichiers médias à convertir dans le « Bucket » approprié.
  3. Amazon Elastic Transcoder doit être configuré.
    1. On doit y créer (au moins) un « Pipeline ». Le « Pipeline » est un peu comme une file d’attente. Si vous créez plusieurs files d’attente, plusieurs processus concurrents peuvent s’exécuter simultanément.
    2. Il est fortement recommandé de créer au moins un « Preset ». Le « Preset » est un ensemble de spécifications qui transformeront les fichiers afin d’en obtenir la résultante désirée. Si par exemple vous voulez que votre « Preset » prenne les fichiers médias, en retire le flux vidéo et convertisse l’audio en fichier mp3 monaural à 64kbps, c’est dans le « Preset » que vous devrez le spécifier. Il existe déjà bon nombre de combinaisons prédéfinies, donc je vous recommande d’explorer ceux-ci à fond avant de créer les vôtres.
  4. Une fois que tout ceci est configuré, vous pouvez créer une nouvelle tâche(« Job ») de conversion. Vous pouvez y spécifier le fichier source, le « Bucket » de destination, le/les « Presets » à utiliser et le « Pipeline » dans lequel tout ceci sera exécuté.

Voici un schéma assez simple illustrant le processus.

*Dans le produit à réaliser, certaines des étapes ci-haut seront certainement exécutées automatiquement dans le code. Mais pour bien en comprendre les processus associés, il est recommandé de configurer et tester chacune de ces tâches manuellement via la console d’Amazon Web Services.

Et la suite…?

Nous en sommes déjà à la conclusion de cet article. Une fois toutes ces informations assimilées, le plus complexe est à venir : Il faut se retrousser les manches et se mettre les mains dans le code! Heureusement, Amazon fournit un SDK très bien documentée et adaptée à plusieurs languages(Java, .NET, PHP, Ruby, etc.). Nous nous ferons un plaisir de revenir sur l’aspect programmation de AWS dans un article ultérieur.

D’ici là, pour ceux qui désirent explorer les alternatives à Amazon Web Services pour la conversion vidéo, voici quelques concurrents offrant des services de conversion et d’hébergement similaires sur lesquels je suis tombé lors de mes recherches.

Auteur.e de l'article

David Barbier

Shaman programmeur
David est un passionné qui ne perd pas une minute. À peine sont DEC d’informatique en poche, obtenu avec brio en 2004, il commence sa carrière de programmeur web et PHP. Toujours à l’affût de nouveautés technologiques, il ne cesse d’apprendre et d’engranger de nouvelles compétences afin de proposer ce qui se fait de mieux à nos clients. Rien n’arrête David. Plus le défi à relever est important, plus il y prend de plaisir. Son enthousiasme permanent est un stimulant contagieux pour le reste de l’équipe!

À découvrir sur notre blogue

2016-11-22

Marier SVG & Javascript

David Barbier / Shaman programmeur

SVG (Scalable Vector Graphics / Graphiques vectoriels redimensionnables) est une spécification du W3C qui date déjà de 2001.

Lire la suite
2017-06-06

Introduction à la balise template

David Barbier / Shaman programmeur

La balise template remplit un besoin similaire aux moteurs de templatings existants, sans pleinement réaliser les fonctionnalités de ses prédécesseurs.

Lire la suite
2022-12-22

Merci de nous propulser toujours plus loin !

Davyd Quintal / Directeur des solutions novatrices

Grâce à vous, Wenovio a connu une croissance fulgurante depuis 2020. Nous profitons donc des fêtes qui approchent pour vous exprimer notre reconnaissance.

Lire la suite
2024-02-29

ChatGPT et conseils juridiques : comment l’utiliser pour le droit ?

Davyd Quintal / Directeur des solutions novatrices

Cette semaine je vous présente une vidéo tutoriel innovante qui vous montre comment utiliser ChatGPT pour obtenir des conseils juridiques.

Lire la suite

Laisser un commentaire

Votre adresse courriel ne sera pas publiée. Les champs obligatoires sont indiqués avec *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.