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

Anunciamos la próxima AWS SDK for JavaScript versión end-of-support para la versión 2. Le recomendamos que migre a la AWS SDK for JavaScript versión 3. Para ver las fechas, los detalles adicionales y la información sobre cómo realizar la migración, consulte el anuncio enlazado.

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

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 con el fin de crear, utilizar y administrar plantillas de trabajos. El código usa el SDK para JavaScript para realizar esta operación mediante los métodos de la clase de cliente de MediaConvert siguientes:

Tareas previas necesarias

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.

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

  • 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 en la Guía del usuario de AWS Elemental MediaConvert.

Creación de una plantilla de trabajo

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.

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 muestra se puede encontrar aquí en GitHub.

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

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 muestra se puede encontrar aquí en GitHub.

Generación de una lista de sus plantillas de trabajo

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 muestra se puede encontrar aquí en GitHub.

Eliminación de una plantilla de trabajo

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 muestra se puede encontrar aquí en GitHub.