Erstellen und Verwalten von Transcodierungsjobs in MediaConvert - AWS SDK for JavaScript

Helfen Sie uns, dasAWS SDK for JavaScriptVersion 3 (V3) -Dokumentation durch Feedback unter Verwendung derFeedbackLink oder erstellen Sie ein Problem oder ziehen Sie eine Anfrage anGitHubaus.

DieAWS SDK for JavaScriptReferenzhandbuch zur V3-API-Referenzbeschreibt ausführlich alle API-Operationen für dieAWS SDK for JavaScriptVersion 3 (V3).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen und Verwalten von Transcodierungsjobs in MediaConvert

JavaScript code example that applies to Node.js execution

Dieses Node.js-Codebeispiel zeigt:

  • So geben Sie den kontospezifischen Endpunkt an, der mit MediaConvert verwendet werden soll.

  • So erstellen Sie Transcodierungsaufträge in MediaConvert.

  • So stornieren Sie einen Trancodierungsauftrag.

  • So rufen Sie die JSON für einen abgeschlossenen Transcodierungsauftrag ab.

  • So rufen Sie ein JSON-Array für bis zu 20 der zuletzt erstellten Aufträge ab.

Das Szenario

In diesem Beispiel verwenden Sie ein Modul Node.js, um MediaConvert aufzurufen, um Transcodierungsaufträge zu erstellen und zu verwalten. Der Code verwendet dazu das SDK für JavaScript, indem diese Methoden der MediaConvert--Client-Klasse verwendet werden:

Erforderliche Aufgaben

Zum Einrichten und Ausführen dieses Beispiels schließen Sie zunächst diese Aufgaben ab:

  • Richten Sie die Projektumgebung ein, um diese Node TypeScript-Beispiele auszuführen, und installieren Sie die erforderlichenAWS SDK for JavaScriptund Drittanbieter-Module. Folgen Sie den Anweisungen aufGitHubaus.

  • Erstellen Sie eine freigegebene Konfigurationsdatei mit Ihren Anmeldeinformationen. Weitere Informationen zum Bereitstellen einer Datei mit gemeinsam genutzten Anmeldeinformationen finden Sie unter Laden der Anmeldeinformationen in Node.js aus der Datei mit gemeinsamen -Anmeld.

  • Erstellen und konfigurieren Sie Amazon S3 S3-Buckets, die Speicher für Eingabedateien und Ausgabedateien von Aufträgen bereitstellen. Details dazu finden Sie unter .Speicher für Dateien erstellenimAWS Elemental MediaConvert — Benutzerhandbuchaus.

  • Laden Sie das Eingabevideo in den Amazon S3 S3-Bucket hoch, den Sie für den Eingabespeicher bereitgestellt haben. Eine Liste der unterstützten Eingabevideo-Codecs und -Container finden Sie unterUnterstützte Eingabecodecs und ContainerimAWS Elemental MediaConvert — Benutzerhandbuchaus.

  • Erstellen Sie eine IAM-Rolle, die MediaConvert-Zugriff auf Ihre Eingabedateien und die Amazon S3 S3-Buckets gewährt, in denen die Ausgabedateien gespeichert sind. Details dazu finden Sie unter .Richten Sie IAM-Berechtigungen einimAWS Elemental MediaConvert — Benutzerhandbuchaus.

Wichtig

In diesem Beispiel wird ECMASCRIPT6 (ES6) verwendet. Dies erfordert Node.js Version 13.x oder höher. Informationen zum Herunterladen der neuesten Version von Node.js finden Sie unterNode.js Downloads.aus.

Wenn Sie jedoch lieber CommonJS-Sytax verwenden möchten, lesen Sie bitteJavaScript ES6/CommonJS-Syntax

Konfigurieren des SDKs

Konfigurieren Sie das SDK wie zuvor gezeigt, einschließlich des Herunterladens der erforderlichen Clients und Pakete. Da MediaConvert benutzerdefinierte Endpunkte für die einzelnen Konten verwendet, müssen Sie auch dieMediaConvert-Client-Klasse zur Verwendung Ihres kontospezifischen Endpunkts. Setzen Sie zu diesem Zweck den endpoint-Parameter auf 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";

Definieren eines einfachen Transcodierungsauftrags

Erstellen eineslibsVerzeichnis und erstellen Sie ein Modul Node.js mit dem DateinamenemcClient.jsaus. Kopieren Sie den folgenden Code und fügen Sie ihn ein, wodurch das MediaConvert-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion : ErsetzenENDPUNKTmit Ihrem MediaConvert-Konto-Endpunkt, den Sie auf derKontoSeite „In der MediaConvert-Konsole“.

import { MediaConvertClient } from "@aws-sdk/client-mediaconvert"; // Set the AWS Region. const REGION = "REGION"; // 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 };

Diesen Beispielcode finden Siehier auf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen emc_createjob.js. Stellen Sie sicher, dass Sie das SDK wie zuvor dargestellt konfigurieren, einschließlich der Installation der erforderlichen Clients und Pakete. Erstellen Sie die JSON für die Definition der Transcodierungsauftragsparameter.

Diese Parameter sind sehr detailliert. Sie können dasAWS Elemental MediaConvert -KonsoleUm die JSON-Auftragsparameter zu erzeugen, indem Sie Ihre Auftragseinstellungen in der Konsole und anschließend auswählenZeige Job JSONunten auf derAufgabeAbschnitts erstellt. Dieses Beispiel enthält die JSON für einen einfachen Auftrag.

Anmerkung

ErsetzenJOB_QUEUE_ARNmit der MediaConvert-Job-WarteschlangeIAM_ROLE_ARNmit dem Amazon-Ressourcennamen (ARN) der IAM-Rolle,OUTPUT_BUCKET_NAMEmit dem Ziel-Bucket-Namen - zum Beispiel „s3: //OUTPUT_BUCKET_NAME/“ undINPUT_BUCKET_AND_FILENAMEmit dem Eingabe-Bucket und dem Dateinamen - zum Beispiel „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", }, }, };

Erstellen eines Transcodierungsauftrags

Rufen Sie nach dem Erstellen der Auftragsparameter-JSON den Asynchron aufrunMethode zum Aufrufen einesMediaConvertClient-Serviceobjekt, das die Parameter übergibt. Die ID des erstellten Auftrags wird in den data der Antwort zurückgegeben.

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

Um das Beispiel auszuführen, geben Sie Folgendes bei der Eingabeaufforderung ein.

node emc_createjob.js

Diesen vollständigen Beispielcode finden Siehier auf GitHubaus.

Stornieren eines Transcodierungsauftrags

Erstellen eineslibsVerzeichnis und erstellen Sie ein Modul Node.js mit dem DateinamenemcClient.jsaus. Kopieren Sie den folgenden Code und fügen Sie ihn ein, wodurch das MediaConvert-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion : ErsetzenENDPUNKTmit Ihrem MediaConvert-Konto-Endpunkt, den Sie auf derKontoSeite „In der MediaConvert-Konsole“.

import { MediaConvertClient } from "@aws-sdk/client-mediaconvert"; // Set the AWS Region. const REGION = "REGION"; // 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 };

Diesen Beispielcode finden Siehier auf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen emc_canceljob.js. Stellen Sie sicher, dass Sie das SDK wie zuvor dargestellt konfigurieren, einschließlich des Herunterladens der erforderlichen Clients und Pakete. Erstellen Sie die JSON, die die ID des zu stornierenden Auftrags enthält. Rufen Sie dann dieCancelJobCommand-Methode erstellen, indem Sie ein Promise für den Aufruf eines erstellenMediaConvertClient-Serviceobjekt, das die Parameter übergibt. Verarbeiten Sie die Antwort im Promise-Rückruf.

Anmerkung

ErsetzenJOB_IDMit der ID des abzubrechenden Auftrags.

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

Um das Beispiel auszuführen, geben Sie Folgendes bei der Eingabeaufforderung ein.

node ec2_canceljob.js

Diesen Beispielcode finden Siehier auf GitHubaus.

Aktuelle Transcodierungsjobs auflisten

Erstellen eineslibsVerzeichnis und erstellen Sie ein Modul Node.js mit dem DateinamenemcClient.jsaus. Kopieren Sie den folgenden Code und fügen Sie ihn ein, wodurch das MediaConvert-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion : ErsetzenENDPUNKTmit Ihrem MediaConvert-Konto-Endpunkt, den Sie auf derKontoSeite „In der MediaConvert-Konsole“.

import { MediaConvertClient } from "@aws-sdk/client-mediaconvert"; // Set the AWS Region. const REGION = "REGION"; // 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 };

Diesen Beispielcode finden Siehier auf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen emc_listjobs.js. Stellen Sie sicher, dass Sie das SDK wie zuvor dargestellt konfigurieren, einschließlich der Installation der erforderlichen Clients und Pakete.

Erstellen Sie die Parameter-JSON einschließlich der Werte, um festzulegen, ob die Liste in sortiert wirdASCENDING, oderDESCENDING-Bestellung, den Amazon-Ressourcenname (ARN) der zu prüfenden Auftragswarteschlange sowie den Status der einzubeziehenden Aufträge. Rufen Sie dann dieListJobsCommand-Methode erstellen, indem Sie ein Promise für den Aufruf eines erstellenMediaConvertClient-Serviceobjekt, das die Parameter übergibt.

Anmerkung

ErsetzenQUEUE_ARNmit dem Amazon-Ressourcennamen (ARN) der zu prüfenden Auftragswarteschlange undSTATUSmit dem Status der Warteschlange.

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

Um das Beispiel auszuführen, geben Sie Folgendes bei der Eingabeaufforderung ein.

node emc_listjobs.js

Diesen Beispielcode finden Siehier auf GitHubaus.