Transcodierungsaufträge erstellen und verwalten in MediaConvert - AWS SDK for JavaScript

Wir haben die bevorstehende end-of-support für AWS SDK for JavaScript v2 angekündigt. Wir empfehlen Ihnen, zu AWS SDK for JavaScript v3 zu migrieren. Datumsangaben, zusätzliche Details und Informationen zur Migration finden Sie in der verlinkten Ankündigung.

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.

Transcodierungsaufträge erstellen und verwalten in MediaConvert

JavaScript code example that applies to Node.js execution

Dieses Node.js-Codebeispiel zeigt:

  • So geben Sie den regionsspezifischen Endpunkt an, mit dem verwendet werden soll. MediaConvert

  • 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 zum Aufrufen, um Transcodierungsaufträge MediaConvert zu erstellen 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 und konfigurieren Sie Amazon S3 S3-Buckets, die Speicherplatz für Auftragseingabedateien und Ausgabedateien bereitstellen. Einzelheiten finden Sie unter Create Storage for Files im AWS Elemental MediaConvertBenutzerhandbuch.

  • Laden Sie das Eingabevideo in den Amazon S3 S3-Bucket hoch, den Sie für den Eingabespeicher bereitgestellt haben. Eine Liste der unterstützten Eingabe-Videocodecs und Container finden Sie im Benutzerhandbuch unter Unterstützte Eingabecodecs und Container. AWS Elemental MediaConvert

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

Konfigurieren des SDKs

Konfigurieren Sie das SDK für, JavaScript indem Sie ein globales Konfigurationsobjekt erstellen und dann die Region für Ihren Code festlegen. In diesem Beispiel ist die Region auf us-west-2 festgelegt. Da für jedes Konto benutzerdefinierte Endpunkte MediaConvert verwendet werden, müssen Sie auch die AWS.MediaConvert Client-Klasse so konfigurieren, dass sie Ihren regionsspezifischen Endpunkt verwendet. Setzen Sie zu diesem Zweck den endpoint-Parameter auf AWS.config.mediaconvert.

// Load the SDK for JavaScript 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" };

Definieren von einfachen Transcodierungsaufträgen

Erstellen Sie ein Node.js-Modul mit dem Dateinamen emc_createjob.js. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren. Erstellen Sie die JSON für die Definition der Transcodierungsauftragsparameter.

Diese Parameter sind sehr detailliert. Sie können die AWS Elemental MediaConvertKonsole verwenden, um die JSON-Jobparameter zu generieren, indem Sie Ihre Job-Einstellungen in der Konsole auswählen und dann am Ende des Job-Abschnitts die Option Job-JSON anzeigen auswählen. Dieses Beispiel enthält die JSON für einen einfachen Auftrag.

var params = { Queue: "JOB_QUEUE_ARN", UserMetadata: { Customer: "Amazon", }, Role: "IAM_ROLE_ARN", Settings: { OutputGroups: [ { Name: "File Group", OutputGroupSettings: { Type: "FILE_GROUP_SETTINGS", FileGroupSettings: { Destination: "s3://OUTPUT_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: "s3://INPUT_BUCKET_AND_FILE_NAME", }, ], TimecodeConfig: { Source: "EMBEDDED", }, }, };

Erstellen eines Transcodierungsauftrags

Nachdem Sie die Auftragsparameter-JSON erstellt haben, rufen Sie die createJob-Methode auf, indem Sie ein Promise für den Aufruf eines AWS.MediaConvert-Serviceobjekts erstellen, das die Parameter übergibt. Verarbeiten Sie anschließend die response im Promise-Callback. Die ID des erstellten Auftrags wird in den data der Antwort zurückgegeben.

// Create a promise on a MediaConvert object var endpointPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" }) .createJob(params) .promise(); // Handle promise's fulfilled/rejected status endpointPromise.then( function (data) { console.log("Job created! ", data); }, function (err) { console.log("Error", err); } );

Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.

node emc_createjob.js

Diesen Beispielcode finden Sie hier auf GitHub.

Stornieren eines Transcodierungsauftrags

Erstellen Sie ein Node.js-Modul mit dem Dateinamen emc_canceljob.js. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren. Erstellen Sie die JSON, die die ID des zu stornierenden Auftrags enthält. Rufen Sie dann die cancelJob-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 MediaConvert to customer endpoint AWS.config.mediaconvert = { endpoint: "ACCOUNT_ENDPOINT" }; var params = { Id: "JOB_ID" /* required */, }; // Create a promise on a MediaConvert object var endpointPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" }) .cancelJob(params) .promise(); // Handle promise's fulfilled/rejected status endpointPromise.then( function (data) { console.log("Job " + params.Id + " is canceled"); }, function (err) { console.log("Error", err); } );

Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.

node ec2_canceljob.js

Diesen Beispielcode finden Sie hier auf GitHub.

Auflisten der letzten Transcodierungsaufträge

Erstellen Sie ein Node.js-Modul mit dem Dateinamen emc_listjobs.js. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren.

Erstellen Sie die Parameter-JSON einschließlich der Werte, um festzulegen, ob die Liste in ASCENDING oder DESCENDING Reihenfolge sortiert wird. Außerdem legen Sie hier den ARN der zu prüfenden Auftragswarteschlange sowie den Status der einzubeziehenden Aufträge fest. Rufen Sie dann die listJobs-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 customer endpoint AWS.config.mediaconvert = { endpoint: "ACCOUNT_ENDPOINT" }; var params = { MaxResults: 10, Order: "ASCENDING", Queue: "QUEUE_ARN", Status: "SUBMITTED", }; // Create a promise on a MediaConvert object var endpointPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" }) .listJobs(params) .promise(); // Handle promise's fulfilled/rejected status endpointPromise.then( function (data) { console.log("Jobs: ", data); }, function (err) { console.log("Error", err); } );

Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.

node emc_listjobs.js

Diesen Beispielcode finden Sie hier auf GitHub.