Qu'est-ce qu'un fichier PEM et comment l'utilisez-vous? – CloudSavvy IT
21 août 2020
Syndrome de Broken Picker – Guérison du sexe et des relations
21 août 2020

Nuages ​​en forme de vieille caméra vidéo de cinéma.
Shutterstock / phloxii

La bande passante coûte de l'argent et le streaming vidéo depuis CloudFront est très coûteux. Vous pouvez réduire ce coût en transcodant vos vidéos au préalable avec Elastic Transcoder d'AWS, qui traite les vidéos pour réduire la taille des fichiers.

La bande passante coûte de l'argent

Les fichiers vidéo sont assez volumineux aussi équitables que les médias, par rapport aux images et à l'audio. AWS vous facture l'espace de stockage et la bande passante utilisée. Si vous avez un fichier vidéo de 100 Mo qui est visionné 1 000 fois, cela représente près de 100 Go de bande passante ou 8,50 USD de bande passante en utilisant CloudFront pour servir le contenu. Si votre application héberge une vidéo, cela peut être un facteur de coût majeur.

Heureusement, la vidéo n'a pas besoin d'être aussi volumineuse. Grâce à un processus appelé transcodage, vous modifiez le débit binaire de la vidéo. Chaque vidéo est encodée à un certain débit de données; par exemple, un enregistrement peut être codé à 10 Mb / s.

Jetez un œil à ce cadre agrandi de quelques images de test d'une méduse. Celui de gauche est codé à un débit raisonnable de 3 Mo / s et celui de droite est codé à un débit très élevé de 100 Mo / s. Pouvez-vous faire la différence?

Zoom dans le cadre de méduses. La gauche est codée à un débit raisonnable de 3Mb / s, la droite est codée à un très haut 100Mb / s.

Il y a un peu de distorsion et une vidéo à faible débit peut définitivement devenir flou avec beaucoup de mouvement, mais pour la plupart, la vidéo 3 Mo / s semble tout à fait acceptable.

Vous remarquerez cependant la différence de taille: le fichier à débit binaire inférieur occupe 11 Mo pour 30 secondes de métrage et le fichier à débit binaire supérieur prend 358 Mo. De toute évidence, vous n’utilisez jamais un fichier aussi volumineux en production, mais si vous ne nettoyez pas les entrées utilisateur, vous risquez de rencontrer ce problème. Même une petite diminution de la taille du fichier peut entraîner des économies importantes sur les fichiers téléchargés assez souvent. Pour les grandes entreprises comme Netflix, le transcodage multimédia est une énorme affaire.

Le transcodage est également utilisé pour générer des vidéos de différentes tailles pour différents appareils. Les petits appareils mobiles qui regardent une vidéo en mode portrait n'ont probablement pas besoin d'une vidéo 4K, ni même d'une vidéo 1080p. Les utilisateurs sur des connexions lentes peuvent uniquement être en mesure de diffuser une vidéo 480p. Elastic Transcoder d'AWS peut générer plusieurs fichiers vidéo pour chaque entrée.

C'est exactement ce que fait YouTube chaque fois que vous mettez en ligne une vidéo: votre vidéo est traitée et transcodée pour être diffusée sur plusieurs plates-formes (et si vous êtes particulièrement en avance sur une vidéo YouTube, vous remarquerez peut-être que la qualité ne dépasse pas 480p, car le transcodage 1080p n'est pas encore terminé).

Comment utiliser Elastic Transcoder d'AWS

Dirigez-vous vers le Console de transcodeur élastique. Vous souhaiterez créer un nouveau pipeline, une file d'attente qui gère les travaux de transcodage. Les pipelines utilisent des compartiments S3 pour l'entrée et la sortie. Vous souhaiterez donc créer deux nouveaux compartiments à partir de Console de gestion S3.

Donnez un nom à votre pipeline, puis sélectionnez votre compartiment d'entrée:

Créez un nouveau pipeline. Donnez un nom au pipeline, sélectionnez son compartiment d'entrée.

Vous voudrez vous assurer que votre bucket et votre pipeline se trouvent dans la même région AWS, ou vous serez facturé pour les données traitées et le transcodage sera plus lent. Sélectionnez le compartiment de sortie et un compartiment à utiliser pour les miniatures. (Cela peut être le compartiment de sortie.)

Créez votre bucket et notez l'ID de pipeline:

Créez un bucket en notant l'ID du pipeline.

En fait, l'utilisation d'Elastic Transcoder est un processus étrangement manuel. Vous devez créer un nouveau travail à partir de la console pour chaque fichier et le mettre en file d'attente avec les paramètres appropriés. Heureusement, vous pouvez automatiser l'ensemble du processus avec une fonction Lambda qui s'exécutera chaque fois qu'un nouveau fichier vidéo est téléchargé sur S3.

Dirigez-vous vers le Console Lambdaet créez une nouvelle fonction. Choisissez NodeJS 10 comme runtime et collez-le ce script, gracieuseté de Swapnil Pawar sur Medium.

Vous souhaiterez modifier les valeurs de pipelineId et seau, en les plaçant entre guillemets comme ceci:

Modifiez les valeurs de pipelineId et du bucket, en les plaçant entre guillemets.

Vous voudrez également modifier PresetId au préréglage que vous souhaitez transcoder, que vous pouvez trouver dans le Documents AWS. Vous pouvez créer les vôtres à partir de la console du transcodeur si les valeurs par défaut ne sont pas suffisantes. Si vous souhaitez mettre en file d'attente plusieurs transcodes pour un seul fichier, ajoutez d'autres éléments à ce tableau:

Modifiez PresetId pour le préréglage que vous souhaitez transcoder.

Une fois que vous avez tout rempli, ajoutez un déclencheur pour que votre fonction Lambda s'exécute chaque fois qu'un objet est créé dans votre bucket d'entrée:

Ajoutez un déclencheur pour que la fonction Lambda s'exécute chaque fois qu'un objet est créé dans le compartiment d'entrée.

Sous le rôle d'exécution, assurez-vous que le rôle a accès à Elastic Transcoder.

Assurez-vous que le rôle d'exécution a accès à Elastic Transcoder.

Vous pouvez utiliser cet échantillon de séquences de méduses pour tester votre fonction. Téléchargez un fichier à débit moyen (30 Mo / s environ) et téléchargez-le dans votre compartiment d'entrée. Si cela réussit, vous devriez voir un nouveau travail en file d'attente dans l'onglet «Travaux» de la console Elastic Transcoder, et vous devriez voir un nouveau dossier «vidéos» dans votre compartiment de sortie qui contient les fichiers produits. Le préréglage «Generic 1080p» a pris une vidéo de 112 Mo à 30 Mo / s et l'a encodée à seulement 18 Mo (environ 5 Mo / s):

Téléchargez le fichier de débit moyen, téléchargez-le dans votre bucket d'entrée. En cas de succès, le nouveau travail doit être mis en file d'attente dans la console Elastic Transcoder

Si votre fonction Lambda a échoué, vous pouvez afficher les journaux sous l'onglet "Surveillance". Vous pouvez également créer un scénario de test pour tester la fonction sans rien télécharger sur S3, bien que le travail envoyé au transcodeur soit superposé.

Ce script, en particulier, enregistrera les fichiers de sortie avec exactement le même nom que l'entrée, bien que vous puissiez ajouter un préfixe si vous le souhaitez. Le transcodeur fonctionne assez rapidement. Vous pourrez donc accéder à votre vidéo dans le bucket de sortie peu de temps après la mise en ligne.

//]]>