

 La [Guía de referencia de la API de AWS SDK for JavaScript V3](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/) describe en detalle todas las operaciones de la API para la versión 3 (V3) de AWS SDK for JavaScript. 

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Ejemplos de AWS Elemental MediaConvert
<a name="emc-examples"></a>

AWS Elemental MediaConvert es un servicio de transcodificación de vídeo basado en archivos con características apropiadas para los medios de difusión. Puede utilizarlo para crear recursos para su difusión y para la entrega de vídeo bajo demanda (VOD) a través de Internet. Para obtener más información, consulte la [Guía del usuario de *AWS Elemental MediaConvert*](https://docs.aws.amazon.com/mediaconvert/latest/ug/).

La API de JavaScript para MediaConvert se expone a través de la clase de cliente de `MediaConvert`. Para obtener más información, consulte [Clase: MediaConvert](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/) en la referencia de la API.

**Topics**
+ [Creación y administración de trabajos de transcodificación en MediaConvert](emc-examples-jobs.md)
+ [Uso de plantillas de trabajo en MediaConvert](emc-examples-templates.md)

# Creación y administración de trabajos de transcodificación en MediaConvert
<a name="emc-examples-jobs"></a>

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

**Este ejemplo de código de Node.js muestra:**
+ Cómo crear trabajos de transcodificación en MediaConvert.
+ Cómo cancelar un trabajo de transcodificación.
+ Cómo recuperar el JSON de un trabajo de transcodificación finalizado.
+ Cómo recuperar una matriz JSON para un máximo de 20 de los últimos trabajos creados.

## El escenario
<a name="emc-examples-jobs-scenario"></a>

En este ejemplo, se utiliza un módulo de Node.js para llamar a MediaConvert para crear y administrar trabajos de transcodificación. El código usa el SDK de JavaScript para realizar esta operación mediante los métodos de la clase de cliente de MediaConvert siguientes:
+ [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/)

## Tareas previas necesarias
<a name="emc-examples-jobs-prerequisites"></a>

Para configurar y ejecutar este ejemplo, primero debe completar las tareas siguientes:
+ Configure el entorno del proyecto para ejecutar estos ejemplos de Node TypeScript e instale los módulos de AWS SDK for JavaScript y de terceros necesarios. Siga las instrucciones en [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascriptv3/example_code/mediaconvert/README.md).
+ Cree un archivo de configuraciones compartidas con sus credenciales de usuario. Para obtener más información sobre proporcionar un archivo de credenciales compartido, consulte [Archivos de configuración y credenciales compartidos](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) en la *Guía de referencia de las herramientas y los SDK de AWS*.
+ Crear y configurar buckets de Amazon S3 que proporcionan almacenamiento para archivos de entrada de trabajo y archivos de salida. Para obtener información detallada, consulte [Crear almacenamiento para archivos](https://docs.aws.amazon.com/mediaconvert/latest/ug/set-up-file-locations.html) en la *Guía del usuario de AWS Elemental MediaConvert*.
+ Cargar el vídeo de entrada en el bucket de Amazon S3 que ha aprovisionado para el almacenamiento de entrada. Para obtener una lista de los códecs y contenedores compatibles con la entrada de vídeo, consulte [Códecs y contenedores de entrada compatibles](https://docs.aws.amazon.com/mediaconvert/latest/ug/reference-codecs-containers-input.html) en la *Guía del usuario de AWS Elemental MediaConvert*.
+ Cree un rol de IAM que conceda a MediaConvert acceso a los archivos de entrada y a los buckets de Amazon S3 donde se almacenan los archivos de salida. Para obtener más información, consulte [Configurar los permisos de IAM](https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html) en la *Guía del usuario de AWS Elemental MediaConvert*.

**importante**  
Este ejemplo usa ECMAScript6 (ES6). Requiere la versión 13.x o superior de Node.js. Para descargar e instalar la versión más reciente de Node.js, consulte [Descargas de Node.js](https://nodejs.org/en/download).  
No obstante, si prefiere utilizar la sintaxis CommonJS, consulte [Sintaxis ES6/commonJS de JavaScript](sdk-example-javascript-syntax.md).

## Definición de un trabajo de transcodificación sencillo
<a name="emc-examples-jobs-spec"></a>

Cree un módulo de Node.js con el nombre de archivo `emc_createjob.js`. Asegúrese de configurar el SDK como se ha mostrado anteriormente, incluida la instalación de los clientes y paquetes necesarios. Cree el JSON que define los parámetros del trabajo de transcodificación.

Estos parámetros son bastante detallados. Puede utilizar la [consola de AWS Elemental MediaConvert](https://console.aws.amazon.com/mediaconvert/) para generar los parámetros JSON del trabajo seleccionando la configuración del trabajo en la consola y, a continuación, seleccionando **Mostrar JSON del trabajo** en la parte inferior de la sección **Trabajo**. En este ejemplo, se muestra el JSON de un trabajo sencillo.

**nota**  
Sustituya *JOB\$1QUEUE\$1ARN* por la cola de trabajos de MediaConvert, *IAM\$1ROLE\$1ARN* por el Nombre de recurso de Amazon (ARN) del rol de IAM, *OUTPUT\$1BUCKET\$1NAME* por el nombre del bucket de destino (por ejemplo, “s3://OUTPUT\$1BUCKET\$1NAME/”) y *INPUT\$1BUCKET\$1AND\$1FILENAME* por el bucket de entrada y el nombre de archivo (por ejemplo, “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",
    },
  },
};
```

## Creación de un trabajo de transcodificación
<a name="emc-examples-jobs-create"></a>

Después de crear el JSON de los parámetros del trabajo, llame al método `run` asincrónico para que invoque un objeto de servicio de cliente de `MediaConvert` mediante la transferencia de los parámetros. El ID del trabajo creado se devuelve en la respuesta `data`.

```
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();
```

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

```
node emc_createjob.js 
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_createjob.js).

## Cancelación de un trabajo de transcodificación
<a name="emc-examples-jobs-cancel"></a>

Cree un módulo de Node.js con el nombre de archivo `emc_canceljob.js`. Asegúrese de configurar el SDK como se ha mostrado anteriormente, incluida la descarga de los clientes y paquetes necesarios. Cree el JSON que incluye el ID del trabajo que desea cancelar. Luego llame al método `CancelJobCommand` creando una promesa para invocar un objeto de servicio de cliente de `MediaConvert` mediante la transferencia de los parámetros. Gestione la respuesta en la devolución de llamada de la promesa.

**nota**  
Sustituya *JOB\$1ID* por el ID del trabajo que desea cancelar.

```
// 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();
```

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

```
node ec2_canceljob.js 
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_canceljob.js).

## Listado de los trabajos de transcodificación recientes
<a name="emc-examples-jobs-listing"></a>

Cree un módulo de Node.js con el nombre de archivo `emc_listjobs.js`. Asegúrese de configurar el SDK como se ha mostrado anteriormente, incluida la instalación de los clientes y paquetes necesarios.

Cree el JSON de los parámetros, incluidos los valores que especificarán si se debe ordenar la lista en orden `ASCENDING` o `DESCENDING`, el Nombre de recurso de Amazon (ARN) de la cola de trabajos que se va comprobar y el estado de los trabajos que se deben incluir. Luego llame al método `ListJobsCommand` creando una promesa para invocar un objeto de servicio de cliente de `MediaConvert` mediante la transferencia de los parámetros. 

**nota**  
Sustituya *QUEUE\$1ARN* por el Nombre de recurso de Amazon (ARN) de la cola de trabajos que va a comprobar y *STATUS* por el estado de la cola.

```
// 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();
```

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

```
node emc_listjobs.js 
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_listjobs.js).

# Uso de plantillas de trabajo en MediaConvert
<a name="emc-examples-templates"></a>

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

**Este ejemplo de código de Node.js muestra:**
+ Cómo crear plantillas de trabajos de AWS Elemental MediaConvert.
+ Cómo utilizar una plantilla de trabajo para crear un trabajo de transcodificación.
+ Cómo generar una lista de todas sus plantillas de trabajo.
+ Cómo eliminar plantillas de trabajos.

## El escenario
<a name="emc-examples-templates-scenario"></a>

El JSON necesario para crear un trabajo de transcodificación en MediaConvert es detallado, ya que contiene un gran número de opciones de configuración. Puede simplificar en gran medida la creación del trabajo guardando la configuración de funcionalidad comprobada en una plantilla de trabajo que pueda utilizar para crear trabajos posteriores. En este ejemplo, se utiliza un módulo de Node.js para llamar a MediaConvert para crear, utilizar y administrar plantillas de trabajos. El código usa el SDK de JavaScript para realizar esta operación mediante los métodos de la clase de cliente de MediaConvert siguientes:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/CreateJobTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/CreateJobTemplateCommand/)
+ [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/DeleteJobTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/DeleteJobTemplateCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/ListJobTemplatesCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/ListJobTemplatesCommand/)

## Tareas previas necesarias
<a name="emc-example-templates-prerequisites"></a>

Para configurar y ejecutar este ejemplo, primero debe completar las tareas siguientes:
+ Configure el entorno del proyecto para ejecutar estos ejemplos de Node TypeScript e instale los módulos de AWS SDK for JavaScript y de terceros necesarios. Siga las instrucciones en [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascriptv3/example_code/mediaconvert/README.md).
+ Cree un archivo de configuraciones compartidas con sus credenciales de usuario. Para obtener más información sobre proporcionar un archivo de credenciales compartido, consulte [Archivos de configuración y credenciales compartidos](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) en la *Guía de referencia de las herramientas y los SDK de AWS*.
+ Cree un rol de IAM que conceda a MediaConvert acceso a los archivos de entrada y a los buckets de Amazon S3 donde se almacenan los archivos de salida. Para obtener más información, consulte [Configurar los permisos de IAM](https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html) en la *Guía del usuario de AWS Elemental MediaConvert*.

**importante**  
En estos ejemplos se utiliza ECMAScript6 (ES6). Requiere la versión 13.x o superior de Node.js. Para descargar e instalar la versión más reciente de Node.js, consulte [Descargas de Node.js](https://nodejs.org/en/download).  
No obstante, si prefiere utilizar la sintaxis CommonJS, consulte [Sintaxis ES6/commonJS de JavaScript](sdk-example-javascript-syntax.md).

## Creación de una plantilla de trabajo
<a name="emc-examples-templates-create"></a>

Cree un módulo de Node.js con el nombre de archivo `emc_create_jobtemplate.js`. Asegúrese de configurar el SDK como se ha mostrado anteriormente, incluida la instalación de los clientes y paquetes necesarios.

Especifique los parámetros JSON para la creación de plantillas. Puede utilizar la mayoría de los parámetros JSON de un trabajo anterior realizado correctamente para especificar los valores de `Settings` en la plantilla. En este ejemplo se utiliza la configuración de trabajo de [Creación y administración de trabajos de transcodificación en MediaConvert](emc-examples-jobs.md).

Llame al método `CreateJobTemplateCommand` creando una promesa para invocar un objeto de servicio de cliente de `MediaConvert` mediante la transferencia de los parámetros.

**nota**  
Sustituya *JOB\$1QUEUE\$1ARN* por el nombre de recurso de Amazon (ARN) de la cola de trabajos que desea comprobar y *BUCKET\$1NAME* por el nombre del bucket de Amazon S3 de destino (por ejemplo, “s3://BUCKET\$1NAME/”). 

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

const params = {
  Category: "YouTube Jobs",
  Description: "Final production transcode",
  Name: "DemoTemplate",
  Queue: "JOB_QUEUE_ARN", //JOB_QUEUE_ARN
  Settings: {
    OutputGroups: [
      {
        Name: "File Group",
        OutputGroupSettings: {
          Type: "FILE_GROUP_SETTINGS",
          FileGroupSettings: {
            Destination: "BUCKET_NAME", // 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",
      },
    ],
    TimecodeConfig: {
      Source: "EMBEDDED",
    },
  },
};

const run = async () => {
  try {
    // Create a promise on a MediaConvert object
    const data = await emcClient.send(new CreateJobTemplateCommand(params));
    console.log("Success!", data);
    return data;
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

```
node emc_create_jobtemplate.js 
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_create_jobtemplate.js).

## Creación de un trabajo de transcodificación a partir de una plantilla de trabajo
<a name="emc-examples-templates-createjob"></a>

Cree un módulo de Node.js con el nombre de archivo `emc_template_createjob.js`. Asegúrese de configurar el SDK como se ha mostrado anteriormente, incluida la instalación de los clientes y paquetes necesarios.

Cree los parámetros JSON de creación del trabajo, como el nombre de la plantilla de trabajo que desea utilizar y el método `Settings` que se utilizará, que son específicos del trabajo que está creando. Luego llame al método `CreateJobsCommand` creando una promesa para invocar un objeto de servicio de cliente de `MediaConvert` mediante la transferencia de los parámetros. 

**nota**  
Sustituya *JOB\$1QUEUE\$1ARN* por el Nombre de recurso de Amazon (ARN) de la cola de trabajos que desea comprobar, *KEY\$1PAIR\$1NAME* por, *TEMPLATE\$1NAME* por, *ROLE\$1ARN* por el Nombre de recurso de Amazon (ARN) del rol y *INPUT\$1BUCKET\$1AND\$1FILENAME* por el bucket de entrada y el nombre del archivo (por ejemplo, “s3://BUCKET\$1NAME/FILE\$1NAME”).

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

const params = {
  Queue: "QUEUE_ARN", //QUEUE_ARN
  JobTemplate: "TEMPLATE_NAME", //TEMPLATE_NAME
  Role: "ROLE_ARN", //ROLE_ARN
  Settings: {
    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"
      },
    ],
  },
};

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

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

```
node emc_template_createjob.js 
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_template_createjob.js).

## Generación de una lista de sus plantillas de trabajo
<a name="emc-examples-templates-listing"></a>

Cree un módulo de Node.js con el nombre de archivo `emc_listtemplates.js`. Asegúrese de configurar el SDK como se ha mostrado anteriormente, incluida la instalación de los clientes y paquetes necesarios.

Cree un objeto para pasar los parámetros de solicitud vacíos para el método `listTemplates` de la clase de cliente `MediaConvert`. Incluya valores para determinar qué plantillas incluirá en la lista (`NAME`, `CREATION DATE`, `SYSTEM`), la cantidad que se incluirán en la lista y su orden de clasificación. Para llamar al método `ListTemplatesCommand`, cree una promesa para invocar un objeto de servicio de cliente de MediaConvert mediante la transferencia de los parámetros. 

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

const params = {
  ListBy: "NAME",
  MaxResults: 10,
  Order: "ASCENDING",
};

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

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

```
node emc_listtemplates.js 
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_template_createjob.js).

## Eliminación de una plantilla de trabajo
<a name="emc-examples-templates-delete"></a>

Cree un módulo de Node.js con el nombre de archivo `emc_deletetemplate.js`. Asegúrese de configurar el SDK como se ha mostrado anteriormente, incluida la instalación de los clientes y paquetes necesarios.

Cree un objeto para transferir el nombre de la plantilla de trabajo que desea eliminar como parámetros para el método `DeleteJobTemplateCommand` de la clase de cliente `MediaConvert`. Para llamar al método `DeleteJobTemplateCommand`, cree una promesa para invocar un objeto de servicio de cliente de MediaConvert mediante la transferencia de los parámetros. 

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

// Set the parameters
const params = { Name: "test" }; //TEMPLATE_NAME

const run = async () => {
  try {
    const data = await emcClient.send(new DeleteJobTemplateCommand(params));
    console.log(
      "Success, template deleted! Request ID:",
      data.$metadata.requestId,
    );
    return data;
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

```
node emc_deletetemplate.js 
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_deletetemplate.js).