Membuat dan Mengelola Pekerjaan Transcoding di MediaConvert - AWS SDK for JavaScript

Kami mengumumkan yang akan datang end-of-support untuk AWS SDK for JavaScript v2. Kami menyarankan Anda bermigrasi ke AWS SDK for JavaScript v3. Untuk tanggal, detail tambahan, dan informasi tentang cara bermigrasi, silakan merujuk ke pengumuman tertaut.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membuat dan Mengelola Pekerjaan Transcoding di MediaConvert

JavaScript code example that applies to Node.js execution

Contoh kode Node.js ini menunjukkan:

  • Cara menentukan titik akhir khusus wilayah yang akan digunakan. MediaConvert

  • Cara membuat pekerjaan transcoding di MediaConvert.

  • Cara membatalkan pekerjaan transcoding.

  • Cara mengambil JSON untuk pekerjaan transcoding yang selesai.

  • Cara mengambil array JSON hingga 20 pekerjaan yang paling baru dibuat.

Skenario

Dalam contoh ini, Anda menggunakan modul Node.js untuk memanggil MediaConvert untuk membuat dan mengelola pekerjaan transcoding. Kode menggunakan SDK JavaScript untuk melakukan ini dengan menggunakan metode kelas MediaConvert klien berikut:

Tugas Prasyarat

Untuk mengatur dan menjalankan contoh ini, pertama-tama selesaikan tugas-tugas ini:

  • Instal Node.js. Untuk informasi selengkapnya, lihat situs web Node.js.

  • Buat file konfigurasi bersama dengan kredensi pengguna Anda. Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat. Memuat Kredensial di Node.js dari File Kredensial Bersama

  • Buat dan konfigurasikan bucket Amazon S3 yang menyediakan penyimpanan untuk file input pekerjaan dan file output. Untuk detailnya, lihat Membuat Penyimpanan untuk File di Panduan AWS Elemental MediaConvert Pengguna.

  • Unggah video input ke bucket Amazon S3 yang Anda sediakan untuk penyimpanan input. Untuk daftar codec dan container video input yang didukung, lihat Codec dan Container Input yang Didukung di Panduan Pengguna. AWS Elemental MediaConvert

  • Buat peran IAM yang memberikan MediaConvert akses ke file input Anda dan bucket Amazon S3 tempat file output Anda disimpan. Untuk detailnya, lihat Mengatur Izin IAM di AWS Elemental MediaConvertPanduan Pengguna.

Mengkonfigurasi SDK

Konfigurasikan SDK untuk JavaScript dengan membuat objek konfigurasi global, lalu setel Wilayah untuk kode Anda. Dalam contoh ini, Region diatur keus-west-2. Karena MediaConvert menggunakan titik akhir khusus untuk setiap akun, Anda juga harus mengonfigurasi kelas AWS.MediaConvert klien untuk menggunakan titik akhir khusus wilayah Anda. Untuk melakukan ini, atur endpoint parameter padaAWS.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" };

Mendefinisikan Job Transcoding Sederhana

Buat modul Node.js dengan nama fileemc_createjob.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Buat JSON yang mendefinisikan parameter pekerjaan transcode.

Parameter ini cukup rinci. Anda dapat menggunakan AWS Elemental MediaConvertkonsol untuk menghasilkan parameter pekerjaan JSON dengan memilih pengaturan pekerjaan di konsol, lalu memilih Tampilkan pekerjaan JSON di bagian bawah bagian Job. Contoh ini menunjukkan JSON untuk pekerjaan sederhana.

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

Membuat Job Transcoding

Setelah membuat parameter pekerjaan JSON, panggil createJob metode dengan membuat janji untuk memanggil objek AWS.MediaConvert layanan, melewati parameter. Kemudian tangani respons dalam panggilan balik janji. ID pekerjaan yang dibuat dikembalikan dalam responsdata.

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

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node emc_createjob.js

Kode contoh ini dapat ditemukan di sini GitHub.

Membatalkan Job Transcoding

Buat modul Node.js dengan nama fileemc_canceljob.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Buat JSON yang menyertakan ID pekerjaan yang akan dibatalkan. Kemudian panggil cancelJob metode dengan membuat janji untuk memanggil objek AWS.MediaConvert layanan, melewati parameter. Tangani respons dalam callback janji.

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

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node ec2_canceljob.js

Kode contoh ini dapat ditemukan di sini GitHub.

Listing Lowongan Transcoding Terbaru

Buat modul Node.js dengan nama fileemc_listjobs.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya.

Buat parameter JSON, termasuk nilai untuk menentukan apakah akan mengurutkan daftar dalamASCENDING, atau DESCENDING urutan, ARN antrian pekerjaan yang akan diperiksa, dan status pekerjaan yang akan disertakan. Kemudian panggil listJobs metode dengan membuat janji untuk memanggil objek AWS.MediaConvert layanan, melewati parameter. Tangani respons dalam callback janji.

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

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node emc_listjobs.js

Kode contoh ini dapat ditemukan di sini GitHub.