

La versión 2 de AWS SDK para JavaScript ha llegado al final del soporte. Se recomienda que migre a [AWS SDK para JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Para ver detalles e información adicionales sobre cómo realizar la migración, consulte este [anuncio](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

# 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/v2/developer-guide/images/nodeicon.png)

**Este ejemplo de código de Node.js muestra:**
+ Cómo crear una plantilla de trabajo personalizada de 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/latest/AWS/MediaConvert.html#createJobTemplate-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#createJobTemplate-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#createJob-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#createJob-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#deleteJobTemplate-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#deleteJobTemplate-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#listJobTemplates-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#listJobTemplates-property)

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

Para configurar y ejecutar este ejemplo, primero debe completar las tareas siguientes:
+ Instale Node.js. Para obtener más información, consulte el sitio web de [Node.js](https://nodejs.org).
+ Cree un archivo de configuraciones compartidas con sus credenciales de usuario. Para obtener más información acerca de cómo crear un archivo de credenciales compartidas, consulte [Carga de credenciales en Node.js desde el archivo de credenciales compartidas](loading-node-credentials-shared.md).
+ 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 [Configuración de 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*.

## 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 tal y como se ha indicado anteriormente.

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 `createJobTemplate` creando una promesa para invocar un objeto de servicio `AWS.MediaConvert` mediante los parámetros. Luego gestione la respuesta en la devolución de llamada de la promesa.

```
// Load the AWS SDK for Node.js
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" };

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

// Create a promise on a MediaConvert object
var templatePromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" })
  .createJobTemplate(params)
  .promise();

// Handle promise's fulfilled/rejected status
templatePromise.then(
  function (data) {
    console.log("Success!", data);
  },
  function (err) {
    console.log("Error", err);
  }
);
```

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/tree/master/javascript/example_code/mediaconvert/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 tal y como se ha indicado anteriormente.

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 `createJobs` creando una promesa para invocar un objeto de servicio `AWS.MediaConvert` mediante los parámetros. Gestione la respuesta en la devolución de llamada de la promesa.

```
// Load the AWS SDK for Node.js
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" };

var params = {
  Queue: "QUEUE_ARN",
  JobTemplate: "TEMPLATE_NAME",
  Role: "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: "s3://BUCKET_NAME/FILE_NAME",
      },
    ],
  },
};

// Create a promise on a MediaConvert object
var templateJobPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" })
  .createJob(params)
  .promise();

// Handle promise's fulfilled/rejected status
templateJobPromise.then(
  function (data) {
    console.log("Success! ", data);
  },
  function (err) {
    console.log("Error", err);
  }
);
```

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/tree/master/javascript/example_code/mediaconvert/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 tal y como se ha indicado anteriormente.

Cree un objeto para pasar los parámetros de solicitud vacíos para el método `listTemplates` de la clase de cliente `AWS.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 `listTemplates`, cree una promesa para invocar un objeto de servicio de MediaConvert mediante la transferencia de los parámetros. Luego gestione la respuesta en la devolución de llamada de la promesa. 

```
// 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 = {
  ListBy: "NAME",
  MaxResults: 10,
  Order: "ASCENDING",
};

// Create a promise on a MediaConvert object
var listTemplatesPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" })
  .listJobTemplates(params)
  .promise();

// Handle promise's fulfilled/rejected status
listTemplatesPromise.then(
  function (data) {
    console.log("Success ", data);
  },
  function (err) {
    console.log("Error", err);
  }
);
```

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/tree/master/javascript/example_code/mediaconvert/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 tal y como se ha indicado anteriormente.

Cree un objeto para transferir el nombre de la plantilla de trabajo que desea eliminar como parámetros para el método `deleteJobTemplate` de la clase de cliente `AWS.MediaConvert`. Para llamar al método `deleteJobTemplate`, cree una promesa para invocar un objeto de servicio de MediaConvert mediante la transferencia de los parámetros. Gestione la respuesta en la devolución de llamada de la promesa. 

```
// 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 = {
  Name: "TEMPLATE_NAME",
};

// Create a promise on a MediaConvert object
var deleteTemplatePromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" })
  .deleteJobTemplate(params)
  .promise();

// Handle promise's fulfilled/rejected status
deleteTemplatePromise.then(
  function (data) {
    console.log("Success ", data);
  },
  function (err) {
    console.log("Error", err);
  }
);
```

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/tree/master/javascript/example_code/mediaconvert/emc_deletetemplate.js).