Uso de plantillas de trabajo en MediaConvert - AWS SDK for JavaScript

La guía de API referencia de la versión AWS SDK for JavaScript 3 describe en detalle todas las API operaciones de la AWS SDK for JavaScript versión 3 (V3).

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.

Uso de plantillas de trabajo en MediaConvert

JavaScript code example that applies to Node.js execution

Este ejemplo de código de Node.js muestra:

  • Cómo crear plantillas de AWS Elemental MediaConvert trabajo.

  • 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

La información JSON necesaria para crear un trabajo de transcodificación MediaConvert es detallada y contiene un gran número de ajustes. 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, utiliza un módulo Node.js al que llamar MediaConvert para crear, usar y administrar plantillas de trabajo. SDKPara JavaScript ello, el código utiliza la forma mediante los siguientes métodos de la clase MediaConvert cliente:

Tareas previas necesarias

Para configurar y ejecutar este ejemplo, primero debe completar las tareas siguientes:

  • Configure el entorno del proyecto para ejecutar estos TypeScript ejemplos de Node e instale los módulos necesarios AWS SDK for JavaScript y de terceros. Siga las instrucciones que figuran en GitHub.

  • Cree un archivo de configuraciones compartidas con sus credenciales de usuario. Para obtener más información sobre cómo proporcionar un archivo de credenciales compartido, consulte Archivos de configuración y credenciales compartidos en la Guía de referencia de herramientas AWS SDKs y herramientas.

  • Cree un IAM rol que dé MediaConvert acceso a sus archivos de entrada y a los depósitos de Amazon S3 en los que se almacenan los archivos de salida. Para obtener más información, consulte Configurar IAM permisos en la Guía del AWS Elemental MediaConvert usuario.

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.

No obstante, si prefiere utilizar la sintaxis CommonJS, consulte Sintaxis ES6/commonJS de JavaScript.

Creación de una plantilla de trabajo

Cree un directorio libs y un módulo Node.js con el nombre de archivo emcClient.js. Copia y pega el siguiente código en él, lo que crea el objeto MediaConvert cliente. Reemplazar REGION con tu AWS región. Reemplazar ENDPOINT con el punto de conexión de tu MediaConvert cuenta, que puedes hacer en la página de cuentas de la MediaConvert consola.

import { MediaConvertClient } from "@aws-sdk/client-mediaconvert"; // Set the account end point. const ENDPOINT = { endpoint: "https://ENDPOINT_UNIQUE_STRING.mediaconvert.REGION.amazonaws.com", }; // Set the MediaConvert Service Object const emcClient = new MediaConvertClient(ENDPOINT); export { emcClient };

Puedes encontrar este código de ejemplo aquí en GitHub.

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

Especifique los parámetros JSON para la creación de la plantilla. Puede utilizar la mayoría de los JSON parámetros de un trabajo anterior exitoso para especificar los Settings valores de 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.

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

Reemplazar JOB_QUEUE_ARN con el nombre del recurso de Amazon (ARN) de la cola de trabajos para comprobar, y BUCKET_NAME con el nombre del bucket Amazon S3 de destino, por ejemplo, «s3://BUCKET_NAME/».

// 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.

Creación de un trabajo de transcodificación a partir de una plantilla de trabajo

Cree un directorio libs y un módulo Node.js con el nombre de archivo emcClient.js. Copia y pega el siguiente código en él, lo que crea el objeto MediaConvert cliente. Reemplazar REGION con tu AWS región. Reemplazar ENDPOINT con el punto de conexión de tu MediaConvert cuenta, que puedes hacer en la página de cuentas de la MediaConvert consola.

import { MediaConvertClient } from "@aws-sdk/client-mediaconvert"; // Set the account end point. const ENDPOINT = { endpoint: "https://ENDPOINT_UNIQUE_STRING.mediaconvert.REGION.amazonaws.com", }; // Set the MediaConvert Service Object const emcClient = new MediaConvertClient(ENDPOINT); export { emcClient };

Puedes encontrar este código de ejemplo aquí en GitHub.

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

Cree los parámetros de creación de trabajosJSON, incluido el nombre de la plantilla de trabajo que se va a utilizar y la que se va Settings a utilizar, que sean específicos del trabajo que va a crear. 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

Reemplazar JOB_QUEUE_ARN con el nombre del recurso de Amazon (ARN) de la cola de trabajos para comprobar, KEY_PAIR_NAME con, TEMPLATE_NAME con, ROLE_ARN con el nombre de recurso de Amazon (ARN) del rol, y INPUT_BUCKET_AND_FILENAME con el bucket de entrada y el nombre del archivo, por ejemplo, «s3://BUCKET_NAME/FILE_NAME».

// 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.

Generación de una lista de sus plantillas de trabajo

Cree un directorio libs y un módulo Node.js con el nombre de archivo emcClient.js. Copia y pega el siguiente código en él, lo que crea el objeto MediaConvert cliente. Reemplazar REGION con tu AWS región. Reemplazar ENDPOINT con el punto de conexión de tu MediaConvert cuenta, que puedes hacer en la página de cuentas de la MediaConvert consola.

import { MediaConvertClient } from "@aws-sdk/client-mediaconvert"; // Set the account end point. const ENDPOINT = { endpoint: "https://ENDPOINT_UNIQUE_STRING.mediaconvert.REGION.amazonaws.com", }; // Set the MediaConvert Service Object const emcClient = new MediaConvertClient(ENDPOINT); export { emcClient };

Puedes encontrar este código de ejemplo aquí en GitHub.

Cree un módulo de Node.js con el nombre de archivo emc_listtemplates.js. Asegúrese de configurarlo SDK como se mostró 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 ListTemplatesCommand método, cree una promesa para invocar un objeto de servicio MediaConvert al cliente pasando 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.

Eliminación de una plantilla de trabajo

Cree un directorio libs y un módulo Node.js con el nombre de archivo emcClient.js. Copia y pega el siguiente código en él, lo que crea el objeto MediaConvert cliente. Reemplazar REGION con tu AWS región. Reemplazar ENDPOINT con el punto de conexión de tu MediaConvert cuenta, que puedes hacer en la página de cuentas de la MediaConvert consola.

import { MediaConvertClient } from "@aws-sdk/client-mediaconvert"; // Set the account end point. const ENDPOINT = { endpoint: "https://ENDPOINT_UNIQUE_STRING.mediaconvert.REGION.amazonaws.com", }; // Set the MediaConvert Service Object const emcClient = new MediaConvertClient(ENDPOINT); export { emcClient };

Puedes encontrar este código de ejemplo aquí en GitHub.

Cree un módulo de Node.js con el nombre de archivo emc_deletetemplate.js. Asegúrese de configurarlo SDK como se mostró 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 DeleteJobTemplateCommand método, cree una promesa para invocar un objeto de servicio MediaConvert al cliente pasando 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.