O Guia de API referência da AWS SDK for JavaScript V3 descreve detalhadamente todas as API operações da AWS SDK for JavaScript versão 3 (V3).
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Criação e gerenciamento de trabalhos de transcodificação no MediaConvert
Este exemplo de código Node.js mostra:
Como especificar o endpoint específico da região com o qual usar. MediaConvert
Como criar trabalhos de transcodificação em. MediaConvert
Como cancelar uma tarefa de transcodificação.
Como recuperar o JSON para um trabalho de transcodificação concluído.
Como recuperar uma JSON matriz para até 20 dos trabalhos criados mais recentemente.
O cenário
Neste exemplo, você usa um módulo Node.js para chamar MediaConvert para criar e gerenciar trabalhos de transcodificação. O código usa o SDK for JavaScript para fazer isso usando estes métodos da classe MediaConvert cliente:
Tarefas de pré-requisito
Para configurar e executar este exemplo, primeiro conclua estas tarefas:
-
Configure o ambiente do projeto para executar esses TypeScript exemplos de Node e instale os módulos necessários AWS SDK for JavaScript e de terceiros. Siga as instruções em GitHub
. Crie um arquivo de configurações compartilhado com as credenciais de usuário. Para obter mais informações sobre como fornecer um arquivo de credenciais compartilhado, consulte Arquivos de configuração e credenciais compartilhados no Guia de referência de ferramentas AWS SDKs e ferramentas.
Crie e configure buckets do Amazon S3 que forneçam armazenamento para arquivos de entrada e de saída da tarefa. Para obter detalhes, consulte Criar armazenamento para arquivos no Guia do usuário do AWS Elemental MediaConvert .
Faça upload do vídeo de entrada no bucket do Amazon S3 provisionado para armazenamento de entrada. Para obter uma lista dos codecs de vídeo de entrada e contêineres compatíveis, consulte Codecs e contêineres de entrada compatíveis no Guia do usuário do AWS Elemental MediaConvert .
Crie uma IAM função que dê MediaConvert acesso aos seus arquivos de entrada e aos buckets do Amazon S3 onde seus arquivos de saída são armazenados. Para obter detalhes, consulte Configurar IAM permissões no Guia AWS Elemental MediaConvert do usuário.
Importante
Este exemplo usa ECMAScript6 (ES6). Isso requer o Node.js versão 13.x ou superior. Para baixar e instalar a versão mais recente do Node.js, consulte Downloads do Node.js
No entanto, se você preferir usar a sintaxe CommonJS, consulte Sintaxe ES6/CommonJS de JavaScript.
Configurando o SDK
Configure o SDK conforme mostrado anteriormente, incluindo o download dos clientes e pacotes necessários. Como MediaConvert usa endpoints personalizados para cada conta, você também deve configurar a classe MediaConvert
cliente para usar seu endpoint específico da região. Para isso, defina o parâmetro endpoint
em mediaconvert(endpoint)
.
// Import required AWS-SDK clients and commands for Node.js import { CreateJobCommand } from "@aws-sdk/client-mediaconvert"; import { emcClient } from "./libs/emcClient.js";
Definição de uma tarefa de transcodificação simples
Crie um diretório libs
e um módulo Node.js com o nome de arquivo emcClient.js
. Copie e cole o código abaixo nele, o que cria o objeto MediaConvert cliente. Substituir REGION
com sua AWS região. Substituir ENDPOINT
com o endpoint MediaConvert da sua conta, que você pode acessar na página Conta no MediaConvert console.
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 };
Esse código de exemplo pode ser encontrado aqui em GitHub
Crie um módulo do Node.js com o nome de arquivo emc_createjob.js
. Certifique-se de configurar o SDK conforme mostrado anteriormente, incluindo a instalação dos clientes e pacotes necessários. Crie o JSON que define os parâmetros do trabalho de transcodificação.
Esses parâmetros são bem detalhados. Você pode usar o AWS Elemental MediaConvert
console
nota
Substituir JOB_QUEUE_ARN
com a fila MediaConvert de trabalhos, IAM_ROLE_ARN
com o Amazon Resource Name (ARN) da IAM função, OUTPUT_BUCKET_NAME
com o nome do bucket de destino - por exemplo, “s3://OUTPUT_ BUCKET _NAME/” e INPUT_BUCKET_AND_FILENAME
com o bucket de entrada e o nome do arquivo - por exemplo, “s3://INPUT_BUCKET/FILE_”. NAME
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", }, }, };
Criar uma tarefa de transcodificação
Depois de criar os parâmetros do trabalhoJSON, chame o run
método assíncrono para invocar um objeto de atendimento ao MediaConvert
cliente, transmitindo os parâmetros. O ID da tarefa criado é retornado no data
da resposta.
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 executar o exemplo, digite o seguinte no prompt de comando.
node emc_createjob.js
Esse código de exemplo completo pode ser encontrado aqui em GitHub
Cancelar uma tarefa de transcodificação
Crie um diretório libs
e um módulo Node.js com o nome de arquivo emcClient.js
. Copie e cole o código abaixo nele, o que cria o objeto MediaConvert cliente. Substituir REGION
com sua AWS região. Substituir ENDPOINT
com o endpoint MediaConvert da sua conta, que você pode acessar na página Conta no MediaConvert console.
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 };
Esse código de exemplo pode ser encontrado aqui em GitHub
Crie um módulo do Node.js com o nome de arquivo emc_canceljob.js
. Certifique-se de configurar o SDK conforme mostrado anteriormente, incluindo o download dos clientes e pacotes necessários. Crie o JSON que inclua o ID do trabalho a ser cancelado. Depois, chame o método CancelJobCommand
criando uma promessa para invocar um objeto de serviço de cliente do MediaConvert
, passando os parâmetros. Lide com a resposta no retorno de chamada da promessa.
nota
Substituir JOB_ID
com o ID do trabalho a ser cancelado.
// 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 executar o exemplo, digite o seguinte no prompt de comando.
node ec2_canceljob.js
Esse código de exemplo pode ser encontrado aqui em GitHub
Como lista tarefas de transcodificação recentes
Crie um diretório libs
e um módulo Node.js com o nome de arquivo emcClient.js
. Copie e cole o código abaixo nele, o que cria o objeto MediaConvert cliente. Substituir REGION
com sua AWS região. Substituir ENDPOINT
com o endpoint MediaConvert da sua conta, que você pode acessar na página Conta no MediaConvert console.
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 };
Esse código de exemplo pode ser encontrado aqui em GitHub
Crie um módulo do Node.js com o nome de arquivo emc_listjobs.js
. Certifique-se de configurar o SDK conforme mostrado anteriormente, incluindo a instalação dos clientes e pacotes necessários.
Crie os parâmetrosJSON, incluindo valores para especificar se a lista deve ser classificada ASCENDING
ou DESCENDING
ordenada pelo Amazon Resource Name (ARN) da fila de trabalhos a serem verificados e o status dos trabalhos a serem incluídos. Depois, chame o método ListJobsCommand
criando uma promessa para invocar um objeto de serviço de cliente do MediaConvert
, passando os parâmetros.
nota
Substituir QUEUE_ARN
com o Amazon Resource Name (ARN) da fila de trabalhos a ser verificada e STATUS
com o status da fila.
// 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 executar o exemplo, digite o seguinte no prompt de comando.
node emc_listjobs.js
Esse código de exemplo pode ser encontrado aqui em GitHub