でのトランスコーディングジョブの作成と管理 MediaConvert - AWS SDK for JavaScript

AWS SDK for JavaScript V3 APIリファレンスガイドでは、バージョン 3 (V3) のすべてのAPIオペレーションについて詳しく説明しています AWS SDK for JavaScript 。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

でのトランスコーディングジョブの作成と管理 MediaConvert

JavaScript code example that applies to Node.js execution

この Node.js コード例は以下を示しています。

  • で使用するリージョン固有のエンドポイントを指定する方法 MediaConvert。

  • でトランスコードジョブを作成する方法 MediaConvert。

  • コード変換ジョブをキャンセルする方法。

  • 完了したトランスコーディングジョブJSONの を取得する方法。

  • 最近作成されたジョブのうち最大 20 個のJSON配列を取得する方法。

シナリオ

この例では、Node.js モジュールを使用して を呼び出し MediaConvert 、トランスコードジョブを作成および管理します。コードは、 SDK の JavaScript を使用して MediaConvert 、クライアントクラスの次の方法を使用してこれを行います。

前提条件タスク

この例をセットアップして実行するには、まず次のタスクを完了します。

  • これらの Node TypeScript 例を実行するようにプロジェクト環境を設定し、必要な AWS SDK for JavaScript モジュールとサードパーティーモジュールをインストールします。の指示に従います GitHub

  • ユーザーの認証情報を使用して、共有設定ファイルを作成します。共有認証情報ファイルの提供の詳細については、「」およびAWS SDKsツールリファレンスガイドの「共有設定ファイルと認証情報ファイル」を参照してください。

  • ジョブの入力ファイル用および出力ファイル用のストレージを提供する Amazon S3 バケットを作成して設定します。詳細については、「AWS Elemental MediaConvert ユーザーガイド」の「ファイルのストレージを作成する」を参照してください。

  • 入力動画を、入力ストレージ用にプロビジョニングした Amazon S3 バケットにアップロードします。サポートされている入力動画のコーデックとコンテナの一覧については、「AWS Elemental MediaConvert ユーザーガイド」の「サポートされる入力コーデックおよびコンテナ」を参照してください。

  • 入力ファイルと出力ファイルが保存されている Amazon S3 バケット MediaConvert へのアクセスを許可するIAMロールを作成します。詳細については、AWS Elemental MediaConvert 「 ユーザーガイド」のIAM「アクセス許可の設定」を参照してください。

重要

この例では ECMAScript6 () を使用しますES6。これには Node.js バージョン 13.x 以降が必要です。Node.js の最新バージョンをダウンロードしてインストールするには、「Node.js ダウンロード」を参照してください。

ただし、CommonJS 構文を使用したい場合は、「JavaScript ES6/CommonJS 構文」を参照してください。

の設定 SDK

必要なクライアントとパッケージのダウンロードなど、前述のSDKように を設定します。 MediaConvert はアカウントごとにカスタムエンドポイントを使用するため、リージョン固有のエンドポイントを使用するようにMediaConvertクライアントクラスを設定する必要があります。これを行うには、mediaconvert(endpoint)endpoint パラメータを設定します。

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

シンプルなコード変換ジョブの定義

libsディレクトリを作成し、ファイル名emcClient.jsでNode.js モジュールを作成します。以下のコードをコピーして貼り付けると、 MediaConvert クライアントオブジェクトが作成されます。置換 REGION AWS リージョンを使用します。置換 ENDPOINT MediaConvert は、 MediaConvert コンソールの アカウントページで実行できる アカウントエンドポイントを使用します。

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

このサンプルコードは、 で GitHub確認できます。

emc_createjob.js というファイル名で Node.js モジュールを作成します。必要なクライアントとパッケージのインストールを含め、前述のSDKように を設定してください。トランスコードジョブパラメータJSONを定義する を作成します。

これらは非常に詳細なパラメータです。AWS Elemental MediaConvert コンソールを使用してJSONジョブパラメータを生成するには、コンソールでジョブ設定を選択し、ジョブセクションの下部でジョブを表示JSONを選択します。この例では、シンプルなジョブJSONの を示しています。

注記

置換 JOB_QUEUE_ARN MediaConvert ジョブキューで、IAM_ROLE_ARN IAM ロールの Amazon リソースネーム (ARN) を使用して、OUTPUT_BUCKET_NAME 宛先バケット名 - 例えば、「3://OUTPUT_BUCKETNAME_/」、および INPUT_BUCKET_AND_FILENAME 入力バケットとファイル名 - 例えば、「3://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", }, }, };

コード変換ジョブの作成

ジョブパラメータ を作成したらJSON、非同期runメソッドを呼び出してMediaConvertクライアントサービスオブジェクトを呼び出し、パラメータを渡します。作成されたジョブの ID がレスポンスの 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();

この例を実行するには、コマンドプロンプトで以下を入力します。

node emc_createjob.js

この完全なサンプルコードは、 で GitHub確認できます。

コード変換ジョブのキャンセル

libsディレクトリを作成し、ファイル名emcClient.jsでNode.js モジュールを作成します。以下のコードをコピーして貼り付けると、 MediaConvert クライアントオブジェクトが作成されます。置換 REGION AWS リージョンを使用します。置換 ENDPOINT MediaConvert は、 MediaConvert コンソールの アカウントページで実行できる アカウントエンドポイントを使用します。

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

このサンプルコードは、 で GitHub確認できます。

emc_canceljob.js というファイル名で Node.js モジュールを作成します。必要なクライアントとパッケージのダウンロードを含め、前述のSDKように を設定してください。キャンセルJSONするジョブの ID を含む を作成します。次に、MediaConvertクライアントサービスオブジェクトを呼び出すための promise を作成してCancelJobCommandメソッドを呼び出し、パラメータを渡します。promise コールバックのレスポンスを処理します。

注記

置換 JOB_ID キャンセルするジョブの ID を指定します。

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

この例を実行するには、コマンドプロンプトで以下を入力します。

node ec2_canceljob.js

このサンプルコードは、 で GitHub確認できます。

最新のコード変換ジョブの一覧表示

libsディレクトリを作成し、ファイル名emcClient.jsでNode.js モジュールを作成します。以下のコードをコピーして貼り付けると、 MediaConvert クライアントオブジェクトが作成されます。置換 REGION AWS リージョンを使用します。置換 ENDPOINT MediaConvert は、 MediaConvert コンソールの アカウントページで実行できる アカウントエンドポイントを使用します。

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

このサンプルコードは、 で GitHub確認できます。

emc_listjobs.js というファイル名で Node.js モジュールを作成します。必要なクライアントとパッケージのインストールを含め、前述のSDKように を設定してください。

リストを でソートするかASCENDING順序でソートするかを指定する値JSON、チェックするジョブキューの DESCENDING Amazon リソースネーム (ARN)、含めるジョブのステータスなど、パラメータ を作成します。次に、MediaConvertクライアントサービスオブジェクトを呼び出すための promise を作成してListJobsCommandメソッドを呼び出し、パラメータを渡します。

注記

置換 QUEUE_ARN チェックするジョブキューの Amazon リソースネーム (ARN)、および STATUS キューのステータス。

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

この例を実行するには、コマンドプロンプトで以下を入力します。

node emc_listjobs.js

このサンプルコードは、 で GitHub確認できます。