Verwenden von Job-Vorlagen 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.

Verwenden von Job-Vorlagen in MediaConvert

JavaScript code example that applies to Node.js execution

Dieses Node.js-Codebeispiel zeigt:

  • So erstellen Sie AWS Elemental MediaConvert MediaConvert-Auftragsvorlagen.

  • So verwenden Sie eine Auftragsvorlage zum Erstellen eines Transcodierungsauftrags.

  • So listen Sie alle Ihre Auftragsvorlagen auf.

  • So löschen Sie Auftragsvorlagen.

Das Szenario

Der zum Erstellen eines Transcodierungsauftrags in MediaConvert erforderliche JSON ist detailliert und enthält eine große Anzahl von Einstellungen. Sie können die Auftragserstellung erheblich vereinfachen, indem Sie zweifelsfrei funktionierende Einstellungen in einer Auftragsvorlage speichern, die zum Erstellen nachfolgender Aufträge verwendet werden kann. In diesem Beispiel verwenden Sie ein Modul Node.js, um MediaConvert aufzurufen, um Auftragsvorlagen zu erstellen, zu verwenden 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 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

Diese Beispiele verwenden ECMASCRIPT6 (ES6). 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

Erstellen einer Auftragsvorlage

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_create_jobtemplate.js. Stellen Sie sicher, dass Sie das SDK wie zuvor dargestellt konfigurieren, einschließlich der Installation der erforderlichen Clients und Pakete.

Geben Sie die Parameter-JSON für die Vorlagenerstellung an. Sie können die meisten JSON-Parameter aus einem vorherigen erfolgreichen Job verwenden, um die Settings-Werte in der Vorlage anzugeben. In diesem Beispiel werden die Aufgabeneinstellungen aus Erstellen und Verwalten von Transcodierungsjobs in MediaConvert verwendet.

Rufen Sie dieCreateJobTemplateCommand-Methode erstellen, indem Sie ein Promise für den Aufruf eines erstellenMediaConvertClient-Serviceobjekt, das die Parameter übergibt.

Anmerkung

ErsetzenJOB_QUEUE_ARNmit dem Amazon-Ressourcennamen (ARN) der zu prüfenden Auftragswarteschlange undBUCKET_NAMEmit dem Namen des Ziel-Amazon S3-Buckets - zum Beispiel „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();

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

node emc_create_jobtemplate.js

Diesen Beispielcode finden Siehier auf GitHubaus.

Erstellen eines Transcodierungsauftrags aus einer Auftragsvorlage

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_template_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 Auftragserstellungsparameter-JSON, einschließlich dem Namen der zu verwendenden Auftragsvorlage und der zu verwendenden Settings, die spezifisch für den Auftrag sind, den Sie erstellen. Rufen Sie dann dieCreateJobsCommand-Methode erstellen, indem Sie ein Promise für den Aufruf eines erstellenMediaConvertClient-Serviceobjekt, das die Parameter übergibt.

Anmerkung

ErsetzenJOB_QUEUE_ARNmit dem Amazon-Ressourcennamen (ARN) der zu prüfenden Auftragswarteschlange,KEY_PAIR_NAMEmit,TEMPLATE_NAMEmit,ROLE_ARNmit dem Amazon-Ressourcennamen (ARN) der Rolle undINPUT_BUCKET_AND_FILENAMEmit dem Eingabe-Bucket und dem Dateinamen - zum Beispiel „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();

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

node emc_template_createjob.js

Diesen Beispielcode finden Siehier auf GitHubaus.

Auflisten Ihrer Auftragsvorlagen

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_listtemplates.js. Stellen Sie sicher, dass Sie das SDK wie zuvor dargestellt konfigurieren, einschließlich der Installation der erforderlichen Clients und Pakete.

Erstellen Sie ein Objekt, um die Anfrageparameter für die listTemplates-Methode der MediaConvert-Client-Klasse zu übergeben. Schließen Sie Werte ein, um zu bestimmen, welche Vorlagen gelistet werden sollen (NAME, CREATION DATE, SYSTEM), wie viele und deren Sortierreihenfolge. Rufen Sie dieListTemplatesCommanderstellen Sie ein Promise für den Aufruf eines MediaConvert--Client-Serviceobjekts und übergeben die Parameter.

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

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

node emc_listtemplates.js

Diesen Beispielcode finden Siehier auf GitHubaus.

Löschen einer Auftragsvorlage

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_deletetemplate.js. Stellen Sie sicher, dass Sie das SDK wie zuvor dargestellt konfigurieren, einschließlich der Installation der erforderlichen Clients und Pakete.

Erstellen Sie ein Objekt, um den Namen der Auftragsvorlage, die Sie löschen möchten, als Parameter für die DeleteJobTemplateCommand-Methode der MediaConvert-Client-Klasse zu übergeben. Rufen Sie dieDeleteJobTemplateCommanderstellen Sie ein Promise für den Aufruf eines MediaConvert--Client-Serviceobjekts und übergeben die Parameter.

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

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

node emc_deletetemplate.js

Diesen Beispielcode finden Siehier auf GitHubaus.