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