Wir haben das Kommende end-of-support für AWS SDK for JavaScript v2 angekündigt
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 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
Die JSON-Datei, die für die Erstellung eines Transcodierungsauftrags erforderlich MediaConvert ist, 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 zum Aufrufen, um Jobvorlagen MediaConvert zu erstellen, zu verwenden und zu verwalten. Der Code verwendet JavaScript dazu das SDK, 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:
Installieren Sie Node.js. Weitere Informationen finden Sie auf der Node.js-Website
. 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 freigegebenen Anmeldeinformationsdatei.
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 Einrichten von IAM-Berechtigungen im AWS Elemental MediaConvert Benutzerhandbuch.
Erstellen einer Auftragsvorlage
Erstellen Sie ein Node.js-Modul mit dem Dateinamen emc_create_jobtemplate.js
. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren.
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 Transcodierungsaufträge erstellen und verwalten in MediaConvert verwendet.
Rufen Sie die createJobTemplate
-Methode auf, indem Sie ein Promise für den Aufruf eines AWS.MediaConvert
-Serviceobjekts erstellen und die Parameter übergeben. Verarbeiten Sie anschließend die response im Promise-Callback.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the Region AWS.config.update({ region: "us-west-2" }); // Set the custom endpoint for your account AWS.config.mediaconvert = { endpoint: "ACCOUNT_ENDPOINT" }; var params = { Category: "YouTube Jobs", Description: "Final production transcode", Name: "DemoTemplate", Queue: "JOB_QUEUE_ARN", Settings: { OutputGroups: [ { Name: "File Group", OutputGroupSettings: { Type: "FILE_GROUP_SETTINGS", FileGroupSettings: { Destination: "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", }, }, }; // Create a promise on a MediaConvert object var templatePromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" }) .createJobTemplate(params) .promise(); // Handle promise's fulfilled/rejected status templatePromise.then( function (data) { console.log("Success!", data); }, function (err) { console.log("Error", err); } );
Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.
node emc_create_jobtemplate.js
Diesen Beispielcode finden Sie hier auf GitHub.
Erstellen eines Transcodierungsauftrags aus einer Auftragsvorlage
Erstellen Sie ein Node.js-Modul mit dem Dateinamen emc_template_createjob.js
. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren.
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 die createJobs
-Methode auf, indem Sie ein Promise für den Aufruf eines AWS.MediaConvert
-Serviceobjekts erstellen, das die Parameter übergibt. Verarbeiten Sie die Antwort im Promise-Rückruf.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the Region AWS.config.update({ region: "us-west-2" }); // Set the custom endpoint for your account AWS.config.mediaconvert = { endpoint: "ACCOUNT_ENDPOINT" }; var params = { Queue: "QUEUE_ARN", JobTemplate: "TEMPLATE_NAME", Role: "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: "s3://BUCKET_NAME/FILE_NAME", }, ], }, }; // Create a promise on a MediaConvert object var templateJobPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" }) .createJob(params) .promise(); // Handle promise's fulfilled/rejected status templateJobPromise.then( function (data) { console.log("Success! ", data); }, function (err) { console.log("Error", err); } );
Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.
node emc_template_createjob.js
Diesen Beispielcode finden Sie hier auf GitHub
Auflisten Ihrer Jobvorlagen
Erstellen Sie ein Node.js-Modul mit dem Dateinamen emc_listtemplates.js
. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren.
Erstellen Sie ein Objekt, um die Anfrageparameter für die listTemplates
-Methode der AWS.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 listTemplates
Methode aufzurufen, erstellen Sie ein Versprechen für den Aufruf eines MediaConvert Serviceobjekts, indem Sie die Parameter übergeben. Verarbeiten Sie anschließend die response im Promise-Callback.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the Region AWS.config.update({ region: "us-west-2" }); // Set the customer endpoint AWS.config.mediaconvert = { endpoint: "ACCOUNT_ENDPOINT" }; var params = { ListBy: "NAME", MaxResults: 10, Order: "ASCENDING", }; // Create a promise on a MediaConvert object var listTemplatesPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" }) .listJobTemplates(params) .promise(); // Handle promise's fulfilled/rejected status listTemplatesPromise.then( function (data) { console.log("Success ", data); }, function (err) { console.log("Error", err); } );
Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.
node emc_listtemplates.js
Diesen Beispielcode finden Sie hier auf GitHub.
Löschen einer Auftragsvorlage
Erstellen Sie ein Node.js-Modul mit dem Dateinamen emc_deletetemplate.js
. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren.
Erstellen Sie ein Objekt, um den Namen der Auftragsvorlage, die Sie löschen möchten, als Parameter für die deleteJobTemplate
-Methode der AWS.MediaConvert
-Client-Klasse zu übergeben. Um die deleteJobTemplate
Methode aufzurufen, erstellen Sie ein Versprechen für den Aufruf eines MediaConvert Serviceobjekts, indem Sie die Parameter übergeben. Verarbeiten Sie die Antwort im Promise-Rückruf.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the Region AWS.config.update({ region: "us-west-2" }); // Set the customer endpoint AWS.config.mediaconvert = { endpoint: "ACCOUNT_ENDPOINT" }; var params = { Name: "TEMPLATE_NAME", }; // Create a promise on a MediaConvert object var deleteTemplatePromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" }) .deleteJobTemplate(params) .promise(); // Handle promise's fulfilled/rejected status deleteTemplatePromise.then( function (data) { console.log("Success ", data); }, function (err) { console.log("Error", err); } );
Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.
node emc_deletetemplate.js
Diesen Beispielcode finden Sie hier auf GitHub.