

 Le [guide de référence de l'API AWS SDK pour JavaScript V3](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/) décrit en détail toutes les opérations de l'API pour la AWS SDK pour JavaScript version 3 (V3). 

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
<a name="emc-examples-jobs"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v3/developer-guide/images/nodeicon.png)

**Cet exemple de code Node.js présente :**
+ 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.

## Le scénario
<a name="emc-examples-jobs-scenario"></a>

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 :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/CreateJobCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/CreateJobCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/CancelJobCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/CancelJobCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/GetJobCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/GetJobCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/ListJobsCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/ListJobsCommand/)

## Tâches préalables
<a name="emc-examples-jobs-prerequisites"></a>

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après :
+ Configurez l'environnement du projet pour exécuter ces TypeScript exemples de nœuds et installez les modules requis AWS SDK pour JavaScript et tiers. Suivez les instructions indiquées sur [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascriptv3/example_code/mediaconvert/README.md).
+ Créez un fichier de configurations partagé avec vos informations d'identification utilisateur. Pour plus d'informations sur la fourniture d'un fichier d'informations d'identification [partagé, consultez la section Fichiers de configuration et d'informations d'identification](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) partagés dans le *guide de référence AWS SDKs et Tools*.
+ Créez et configurez des compartiments Amazon S3 qui fournissent du stockage pour les fichiers d'entrée et de sortie des tâches. Pour plus de détails, voir [Création d'un espace de stockage pour les fichiers](https://docs.aws.amazon.com/mediaconvert/latest/ug/set-up-file-locations.html) dans le *Guide de AWS Elemental MediaConvert l'utilisateur*.
+ Téléchargez la vidéo d'entrée dans le compartiment Amazon S3 que vous avez configuré pour le stockage d'entrée. *Pour obtenir la liste des codecs et conteneurs vidéo d'entrée pris en charge, consultez la section Codecs et conteneurs [d'entrée pris en charge dans le guide de l'utilisateur](https://docs.aws.amazon.com/mediaconvert/latest/ug/reference-codecs-containers-input.html).AWS Elemental MediaConvert *
+ Créez un rôle IAM qui donne MediaConvert accès à vos fichiers d'entrée et aux compartiments Amazon S3 dans lesquels vos fichiers de sortie sont stockés. Pour plus de détails, consultez la section [Configurer les autorisations IAM](https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html) dans le *guide de l'AWS Elemental MediaConvert utilisateur*.

**Important**  
Cet exemple utilise ECMAScript6 (ES6). Cela nécessite la version 13.x ou supérieure de Node.js. Pour télécharger et installer la dernière version de Node.js, consultez la section [Téléchargements de Node.js.](https://nodejs.org/en/download) .  
Toutefois, si vous préférez utiliser la syntaxe CommonJS, veuillez vous référer à[JavaScript ES6Syntaxe /CommonJS](sdk-example-javascript-syntax.md).

## Définition d'une tâche de transcodage simple
<a name="emc-examples-jobs-spec"></a>

Créez un module Node.js nommé `emc_createjob.js`. Assurez-vous de configurer le SDK comme indiqué précédemment, notamment en installant les clients et les packages requis. 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 MediaConvert console](https://console.aws.amazon.com/mediaconvert/) 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.

**Note**  
*JOB\$1QUEUE\$1ARN*Remplacez-le par la file d'attente *IAM\$1ROLE\$1ARN* des MediaConvert tâches, par le nom de ressource Amazon (ARN) du rôle IAM, *OUTPUT\$1BUCKET\$1NAME* par le nom du compartiment de destination, par exemple, « s3://OUTPUT\$1BUCKET\$1NAME/ », et *INPUT\$1BUCKET\$1AND\$1FILENAME* par le compartiment d'entrée et le nom du fichier, par exemple, « s3://INPUT\$1BUCKET/FILE\$1NAME ».

```
const params = {
  Queue: "JOB_QUEUE_ARN", //JOB_QUEUE_ARN
  UserMetadata: {
    Customer: "Amazon",
  },
  Role: "IAM_ROLE_ARN", //IAM_ROLE_ARN
  Settings: {
    OutputGroups: [
      {
        Name: "File Group",
        OutputGroupSettings: {
          Type: "FILE_GROUP_SETTINGS",
          FileGroupSettings: {
            Destination: "OUTPUT_BUCKET_NAME", //OUTPUT_BUCKET_NAME, e.g., "s3://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: "INPUT_BUCKET_AND_FILENAME", //INPUT_BUCKET_AND_FILENAME, e.g., "s3://BUCKET_NAME/FILE_NAME"
      },
    ],
    TimecodeConfig: {
      Source: "EMBEDDED",
    },
  },
};
```

## Création d'une tâche de transcodage
<a name="emc-examples-jobs-create"></a>

Après avoir créé les paramètres de tâche au format JSON, appelez la `run` méthode asynchrone pour appeler un objet de service `MediaConvert` client en transmettant les paramètres. L'ID de la tâche créée est renvoyé dans les données `data` de la réponse.

```
const run = async () => {
  try {
    const data = await emcClient.send(new CreateJobCommand(params));
    console.log("Job created!", data);
    return data;
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Pour exécuter l'exemple, entrez ce qui suit à l'invite de commande.

```
node emc_createjob.js 
```

Cet exemple de code complet se trouve [ici GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_createjob.js).

## Annulation d'une tâche de transcodage
<a name="emc-examples-jobs-cancel"></a>

Créez un module Node.js nommé `emc_canceljob.js`. Assurez-vous de configurer le SDK comme indiqué précédemment, notamment en téléchargeant les clients et les packages requis. Créez l'objet JSON qui inclut l'ID de la tâche à annuler. Appelez ensuite la `CancelJobCommand` méthode en créant une promesse pour invoquer un objet de service `MediaConvert` client, en transmettant les paramètres. Traitez la réponse dans le rappel de promesse.

**Note**  
Remplacez *JOB\$1ID* par l'ID de la tâche à annuler.

```
// Import required AWS-SDK clients and commands for Node.js
import { CancelJobCommand } from "@aws-sdk/client-mediaconvert";
import { emcClient } from "./libs/emcClient.js";

// Set the parameters
const params = { Id: "JOB_ID" }; //JOB_ID

const run = async () => {
  try {
    const data = await emcClient.send(new CancelJobCommand(params));
    console.log(`Job  ${params.Id} is canceled`);
    return data;
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Pour exécuter l'exemple, entrez ce qui suit à l'invite de commande.

```
node ec2_canceljob.js 
```

Cet exemple de code se trouve [ici GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_canceljob.js).

## Liste des travaux de transcodage récents
<a name="emc-examples-jobs-listing"></a>

Créez un module Node.js nommé `emc_listjobs.js`. Assurez-vous de configurer le SDK comme indiqué précédemment, notamment en installant les clients et les packages requis.

Créez les paramètres JSON, y compris des valeurs indiquant s'il faut trier la liste en `ASCENDING` fonction ou en `DESCENDING` ordre, de l'Amazon Resource Name (ARN) de la file d'attente de tâches à vérifier et du statut des tâches à inclure. Appelez ensuite la `ListJobsCommand` méthode en créant une promesse pour invoquer un objet de service `MediaConvert` client, en transmettant les paramètres. 

**Note**  
*QUEUE\$1ARN*Remplacez-le par le Amazon Resource Name (ARN) de la file d'attente de tâches à vérifier et *STATUS* par le statut de la file d'attente.

```
// Import required AWS-SDK clients and commands for Node.js
import { ListJobsCommand } from "@aws-sdk/client-mediaconvert";
import { emcClient } from "./libs/emcClient.js";

// Set the parameters
const params = {
  MaxResults: 10,
  Order: "ASCENDING",
  Queue: "QUEUE_ARN",
  Status: "SUBMITTED", // e.g., "SUBMITTED"
};

const run = async () => {
  try {
    const data = await emcClient.send(new ListJobsCommand(params));
    console.log("Success. Jobs: ", data.Jobs);
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Pour exécuter l'exemple, entrez ce qui suit à l'invite de commande.

```
node emc_listjobs.js 
```

Cet exemple de code se trouve [ici GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_listjobs.js).