Création et gestion de tâches de transcodage dans MediaConvert - AWS SDK for JavaScript

Nous avons annoncé la sortie end-of-support de la AWS SDK for JavaScript v2. Nous vous recommandons de migrer vers la AWS SDK for JavaScript version 3. Pour les dates, les détails supplémentaires et les informations sur la façon de migrer, reportez-vous à l'annonce associée.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création et gestion de tâches de transcodage dans MediaConvert

JavaScript code example that applies to Node.js execution

Cet exemple de code Node.js présente :

  • Comment spécifier le point de terminaison spécifique à la région à utiliser avec. MediaConvert

  • Comment créer des tâches de transcodage dans. MediaConvert

  • Procédure d'annulation d'une tâche de transcodage.

  • Procédure de récupération de l'objet JSON pour une tâche de transcodage terminée.

  • Procédure de récupération d'un tableau JSON pour jusqu'à 20 tâches créées en dernier.

Scénario

Dans cet exemple, vous utilisez un module Node.js à appeler pour MediaConvert créer et gérer des tâches de transcodage. Le code utilise le SDK pour ce JavaScript faire en utilisant les méthodes suivantes de la classe MediaConvert client :

Tâches prérequises

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après :

Configuration du kit SDK

Configurez le SDK pour JavaScript en créant un objet de configuration globale, puis en définissant la région pour votre code. Dans cet exemple, la région est us-west-2. Étant donné qu'il MediaConvert utilise des points de terminaison personnalisés pour chaque compte, vous devez également configurer la classe AWS.MediaConvert client pour utiliser le point de terminaison spécifique à votre région. Pour ce faire, vous définissez le paramètre endpoint sur AWS.config.mediaconvert.

// Load the SDK for JavaScript var AWS = require("aws-sdk"); // Set the Region AWS.config.update({ region: "us-west-2" }); // Set the custom endpoint for your account AWS.config.mediaconvert = { endpoint: "ACCOUNT_ENDPOINT" };

Définition d'une tâche de transcodage simple

Créez un module Node.js nommé emc_createjob.js. Veillez à configurer le kit SDK comme indiqué précédemment. Créez le code JSON qui définit les paramètres de tâche de transcodage.

Ces paramètres sont assez détaillés. Vous pouvez utiliser la AWS Elemental MediaConvertconsole pour générer les paramètres de tâche JSON en choisissant vos paramètres de tâche dans la console, puis en choisissant Afficher le JSON de la tâche en bas de la section Job. Cet exemple illustre le code JSON pour une tâche simple.

var params = { Queue: "JOB_QUEUE_ARN", UserMetadata: { Customer: "Amazon", }, Role: "IAM_ROLE_ARN", Settings: { OutputGroups: [ { Name: "File Group", OutputGroupSettings: { Type: "FILE_GROUP_SETTINGS", FileGroupSettings: { Destination: "s3://OUTPUT_BUCKET_NAME/", }, }, Outputs: [ { VideoDescription: { ScalingBehavior: "DEFAULT", TimecodeInsertion: "DISABLED", AntiAlias: "ENABLED", Sharpness: 50, CodecSettings: { Codec: "H_264", H264Settings: { InterlaceMode: "PROGRESSIVE", NumberReferenceFrames: 3, Syntax: "DEFAULT", Softness: 0, GopClosedCadence: 1, GopSize: 90, Slices: 1, GopBReference: "DISABLED", SlowPal: "DISABLED", SpatialAdaptiveQuantization: "ENABLED", TemporalAdaptiveQuantization: "ENABLED", FlickerAdaptiveQuantization: "DISABLED", EntropyEncoding: "CABAC", Bitrate: 5000000, FramerateControl: "SPECIFIED", RateControlMode: "CBR", CodecProfile: "MAIN", Telecine: "NONE", MinIInterval: 0, AdaptiveQuantization: "HIGH", CodecLevel: "AUTO", FieldEncoding: "PAFF", SceneChangeDetect: "ENABLED", QualityTuningLevel: "SINGLE_PASS", FramerateConversionAlgorithm: "DUPLICATE_DROP", UnregisteredSeiTimecode: "DISABLED", GopSizeUnits: "FRAMES", ParControl: "SPECIFIED", NumberBFramesBetweenReferenceFrames: 2, RepeatPps: "DISABLED", FramerateNumerator: 30, FramerateDenominator: 1, ParNumerator: 1, ParDenominator: 1, }, }, AfdSignaling: "NONE", DropFrameTimecode: "ENABLED", RespondToAfd: "NONE", ColorMetadata: "INSERT", }, AudioDescriptions: [ { AudioTypeControl: "FOLLOW_INPUT", CodecSettings: { Codec: "AAC", AacSettings: { AudioDescriptionBroadcasterMix: "NORMAL", RateControlMode: "CBR", CodecProfile: "LC", CodingMode: "CODING_MODE_2_0", RawFormat: "NONE", SampleRate: 48000, Specification: "MPEG4", Bitrate: 64000, }, }, LanguageCodeControl: "FOLLOW_INPUT", AudioSourceName: "Audio Selector 1", }, ], ContainerSettings: { Container: "MP4", Mp4Settings: { CslgAtom: "INCLUDE", FreeSpaceBox: "EXCLUDE", MoovPlacement: "PROGRESSIVE_DOWNLOAD", }, }, NameModifier: "_1", }, ], }, ], AdAvailOffset: 0, Inputs: [ { AudioSelectors: { "Audio Selector 1": { Offset: 0, DefaultSelection: "NOT_DEFAULT", ProgramSelection: 1, SelectorType: "TRACK", Tracks: [1], }, }, VideoSelector: { ColorSpace: "FOLLOW", }, FilterEnable: "AUTO", PsiControl: "USE_PSI", FilterStrength: 0, DeblockFilter: "DISABLED", DenoiseFilter: "DISABLED", TimecodeSource: "EMBEDDED", FileInput: "s3://INPUT_BUCKET_AND_FILE_NAME", }, ], TimecodeConfig: { Source: "EMBEDDED", }, }, };

Création d'une tâche de transcodage

Après avoir créé l'objet JSON des paramètres de tâche, appelez la méthode createJob en créant une promesse pour appeler un objet de service AWS.MediaConvert et en transmettant les paramètres. Traitez ensuite l'élément response dans le rappel de promesse. L'ID de la tâche créée est renvoyé dans les données data de la réponse.

// Create a promise on a MediaConvert object var endpointPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" }) .createJob(params) .promise(); // Handle promise's fulfilled/rejected status endpointPromise.then( function (data) { console.log("Job created! ", data); }, function (err) { console.log("Error", err); } );

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node emc_createjob.js

Cet exemple de code se trouve ici sur GitHub.

Annulation d'une tâche de transcodage

Créez un module Node.js nommé emc_canceljob.js. Veillez à configurer le kit SDK comme indiqué précédemment. Créez l'objet JSON qui inclut l'ID de la tâche à annuler. Appelez ensuite la méthode cancelJob en créant une promesse pour appeler un objet de service AWS.MediaConvert, en transmettant les paramètres. Traitez la réponse dans le rappel de promesse.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the Region AWS.config.update({ region: "us-west-2" }); // Set MediaConvert to customer endpoint AWS.config.mediaconvert = { endpoint: "ACCOUNT_ENDPOINT" }; var params = { Id: "JOB_ID" /* required */, }; // Create a promise on a MediaConvert object var endpointPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" }) .cancelJob(params) .promise(); // Handle promise's fulfilled/rejected status endpointPromise.then( function (data) { console.log("Job " + params.Id + " is canceled"); }, function (err) { console.log("Error", err); } );

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node ec2_canceljob.js

Cet exemple de code se trouve ici sur GitHub.

Affichage de la liste des tâches de transcodage récentes

Créez un module Node.js nommé emc_listjobs.js. Veillez à configurer le kit SDK comme indiqué précédemment.

Créez l'objet JSON des paramètres, en incluant les valeurs qui spécifient si vous souhaitez trier la liste dans l'ordre ASCENDING (croissant) ou DESCENDING (décroissant), l'ARN de la file d'attente de tâches à vérifier et le statut des tâches à inclure. Appelez ensuite la méthode listJobs en créant une promesse pour appeler un objet de service AWS.MediaConvert, en transmettant les paramètres. Traitez la réponse dans le rappel de promesse.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the Region AWS.config.update({ region: "us-west-2" }); // Set the customer endpoint AWS.config.mediaconvert = { endpoint: "ACCOUNT_ENDPOINT" }; var params = { MaxResults: 10, Order: "ASCENDING", Queue: "QUEUE_ARN", Status: "SUBMITTED", }; // Create a promise on a MediaConvert object var endpointPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" }) .listJobs(params) .promise(); // Handle promise's fulfilled/rejected status endpointPromise.then( function (data) { console.log("Jobs: ", data); }, function (err) { console.log("Error", err); } );

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node emc_listjobs.js

Cet exemple de code se trouve ici sur GitHub.