Verwenden von Jobvorlagen in MediaConvert - AWS SDK for JavaScript

Das AWS SDK for JavaScript APIV3-Referenzhandbuch beschreibt detailliert alle API Operationen für die AWS SDK for JavaScript Version 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 Jobvorlagen in MediaConvert

JavaScript code example that applies to Node.js execution

Dieses Node.js-Codebeispiel zeigt:

  • So erstellen Sie AWS Elemental MediaConvert Jobvorlagen.

  • So verwenden Sie eine Auftragsvorlage zum Erstellen eines Transcodierungsauftrags.

  • So listen Sie alle Ihre Auftragsvorlagen auf.

  • So löschen Sie Auftragsvorlagen.

Das Szenario

Das für die Erstellung eines Transcodierungsauftrags JSON erforderliche MediaConvert Dokument 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 rufen Sie das Modul Node.js auf, um Auftragsvorlagen MediaConvert zu erstellen, zu verwenden und zu verwalten. Der Code verwendet das SDK for JavaScript , um dies zu tun, indem er die folgenden Methoden der MediaConvert Client-Klasse verwendet:

Erforderliche Aufgaben

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

  • Richten Sie die Projektumgebung ein, um diese TypeScript Node-Beispiele auszuführen, und installieren Sie die erforderlichen Module AWS SDK for JavaScript und Module von Drittanbietern. Folgen Sie den Anweisungen auf GitHub.

  • Erstellen Sie eine freigegebene Konfigurationsdatei mit Ihren Anmeldeinformationen. Weitere Informationen zur Bereitstellung einer Datei mit gemeinsam genutzten Anmeldeinformationen finden Sie unter Dateien mit gemeinsam genutzten Konfigurationen und Anmeldeinformationen im AWS SDKsReferenzhandbuch zu Tools.

  • Erstellen Sie eine IAM Rolle, die MediaConvert Zugriff auf Ihre Eingabedateien und die Amazon S3 S3-Buckets gewährt, in denen Ihre Ausgabedateien gespeichert sind. Einzelheiten finden Sie unter IAMBerechtigungen einrichten im AWS Elemental MediaConvert Benutzerhandbuch.

Wichtig

In diesen Beispielen wird ECMAScript6 (ES6) verwendet. Dies erfordert Node.js Version 13.x oder höher. Informationen zum Herunterladen und Installieren der neuesten Version von Node.js finden Sie unter Node.js downloads. .

Wenn Sie jedoch die CommonJS-Syntax bevorzugen, finden Sie weitere Informationen unter. JavaScript ES6/CommonJS-Syntax

Eine Jobvorlage erstellen

Erstellen Sie ein libs Verzeichnis und ein Modul Node.js mit dem DateinamenemcClient.js. Kopieren Sie den folgenden Code und fügen Sie ihn ein, wodurch das MediaConvert Client-Objekt erstellt wird. Ersetzen REGION mit Ihrer AWS Region. Ersetzen ENDPOINT mit Ihrem MediaConvert Kontoendpunkt, den Sie auf der Kontoseite in der MediaConvert Konsole aufrufen können.

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

Diesen Beispielcode finden Sie hier auf GitHub.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen emc_create_jobtemplate.js. Stellen Sie sicher, dass Sie das SDK wie zuvor gezeigt 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 früheren erfolgreichen Job verwenden, um die Settings Werte in der Vorlage anzugeben. In diesem Beispiel werden die Aufgabeneinstellungen aus Transcodierungsaufträge erstellen und verwalten in MediaConvert verwendet.

Rufen Sie die CreateJobTemplateCommand Methode auf, indem Sie ein Versprechen für den Aufruf eines MediaConvert Client-Serviceobjekts erstellen und die Parameter übergeben.

Anmerkung

Ersetzen JOB_QUEUE_ARN mit dem Amazon-Ressourcennamen (ARN) der zu prüfenden Job-Warteschlange und BUCKET_NAME mit dem Namen des Amazon S3 S3-Ziel-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 an der Befehlszeile Folgendes ein.

node emc_create_jobtemplate.js

Dieser Beispielcode finden Sie hier unter GitHub.

Einen Transcodierungsauftrag aus einer Jobvorlage erstellen

Erstellen Sie ein libs Verzeichnis und ein Modul Node.js mit dem DateinamenemcClient.js. Kopieren Sie den folgenden Code und fügen Sie ihn ein, wodurch das MediaConvert Client-Objekt erstellt wird. Ersetzen REGION mit Ihrer AWS Region. Ersetzen ENDPOINT mit Ihrem MediaConvert Kontoendpunkt, den Sie auf der Kontoseite in der MediaConvert Konsole aufrufen können.

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

Diesen Beispielcode finden Sie hier auf GitHub.

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

Erstellen Sie die Parameter für die AuftragserstellungJSON, einschließlich des Namens der zu verwendenden Jobvorlage, und der Settings zu verwendenden Parameter, die für den Job spezifisch sind, den Sie erstellen. Rufen Sie dann die CreateJobsCommand Methode auf, indem Sie eine Zusage für den Aufruf eines MediaConvert Client-Serviceobjekts erstellen und die Parameter übergeben.

Anmerkung

Ersetzen JOB_QUEUE_ARN mit dem Amazon-Ressourcennamen (ARN) der zu prüfenden Job-Warteschlange, KEY_PAIR_NAME mit TEMPLATE_NAME mit, ROLE_ARN mit dem Amazon-Ressourcennamen (ARN) der Rolle und INPUT_BUCKET_AND_FILENAME mit 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 an der Befehlszeile Folgendes ein.

node emc_template_createjob.js

Dieser Beispielcode finden Sie hier unter GitHub.

Listet Ihre Jobvorlagen auf

Erstellen Sie ein libs Verzeichnis und ein Modul Node.js mit dem DateinamenemcClient.js. Kopieren Sie den folgenden Code und fügen Sie ihn ein, wodurch das MediaConvert Client-Objekt erstellt wird. Ersetzen REGION mit Ihrer AWS Region. Ersetzen ENDPOINT mit Ihrem MediaConvert Kontoendpunkt, den Sie auf der Kontoseite in der MediaConvert Konsole aufrufen können.

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

Diesen Beispielcode finden Sie hier auf GitHub.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen emc_listtemplates.js. Stellen Sie sicher, dass Sie das SDK wie zuvor gezeigt 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. Um die ListTemplatesCommand Methode aufzurufen, erstellen Sie ein Versprechen zum Aufrufen eines MediaConvert Client-Dienstobjekts und übergeben dabei 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 an der Befehlszeile Folgendes ein.

node emc_listtemplates.js

Dieser Beispielcode finden Sie hier unter GitHub.

Löschen einer Jobvorlage

Erstellen Sie ein libs Verzeichnis und ein Modul Node.js mit dem DateinamenemcClient.js. Kopieren Sie den folgenden Code und fügen Sie ihn ein, wodurch das MediaConvert Client-Objekt erstellt wird. Ersetzen REGION mit Ihrer AWS Region. Ersetzen ENDPOINT mit Ihrem MediaConvert Kontoendpunkt, den Sie auf der Kontoseite in der MediaConvert Konsole aufrufen können.

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

Diesen Beispielcode finden Sie hier auf GitHub.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen emc_deletetemplate.js. Stellen Sie sicher, dass Sie das SDK wie zuvor gezeigt 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. Um die DeleteJobTemplateCommand Methode aufzurufen, erstellen Sie ein Versprechen zum Aufrufen eines MediaConvert Client-Dienstobjekts und übergeben dabei 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 an der Befehlszeile Folgendes ein.

node emc_deletetemplate.js

Dieser Beispielcode finden Sie hier unter GitHub.