Panduan Referensi API AWS SDK untuk JavaScript V3 menjelaskan secara rinci semua operasi API untuk AWS SDK untuk JavaScript versi 3 (V3).
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
Contoh kode Node.js ini menunjukkan:
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:
-
Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada GitHub
. Buat file konfigurasi bersama dengan kredensi pengguna Anda. Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File konfigurasi dan kredensial bersama di Panduan Referensi Alat dan Alat.AWS SDKs
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 masukan 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 MediaConvert Panduan Pengguna.
penting
Contoh ini menggunakan ECMAScript6 (ES6). Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat unduhan Node.js.
Namun, jika Anda lebih suka menggunakan sintaks CommonJS, silakan merujuk ke. JavaScript ES6/CommonJS sintaks
Mendefinisikan pekerjaan transcoding sederhana
Buat modul Node.js dengan nama fileemc_createjob.js. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Buat JSON yang mendefinisikan parameter pekerjaan transcode.
Parameter ini cukup rinci. Anda dapat menggunakan AWS Elemental MediaConvert
konsol
catatan
Ganti JOB_QUEUE_ARN dengan antrian MediaConvert pekerjaan, IAM_ROLE_ARN dengan Amazon Resource Name (ARN) dari peran IAMOUTPUT_BUCKET_NAME, dengan nama bucket tujuan - misalnya, "s3://OUTPUT_BUCKET_NAME/ “, INPUT_BUCKET_AND_FILENAME dan dengan bucket input dan nama file - misalnya," s3://INPUT_BUCKET/FILE_NAME”.
const params = { Queue: "JOB_QUEUE_ARN", //JOB_QUEUE_ARN UserMetadata: { Customer: "Amazon", }, Role: "IAM_ROLE_ARN", //IAM_ROLE_ARN Settings: { OutputGroups: [ { Name: "File Group", OutputGroupSettings: { Type: "FILE_GROUP_SETTINGS", FileGroupSettings: { Destination: "OUTPUT_BUCKET_NAME", //OUTPUT_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", FileInput: "INPUT_BUCKET_AND_FILENAME", //INPUT_BUCKET_AND_FILENAME, e.g., "s3://BUCKET_NAME/FILE_NAME" }, ], TimecodeConfig: { Source: "EMBEDDED", }, }, };
Membuat pekerjaan transcoding
Setelah membuat parameter pekerjaan JSON, panggil run metode asinkron untuk memanggil objek layanan MediaConvert klien, melewati parameter. ID pekerjaan yang dibuat dikembalikan dalam responsdata.
const run = async () => { try { const data = await emcClient.send(new CreateJobCommand(params)); console.log("Job created!", data); return data; } catch (err) { console.log("Error", err); } }; run();
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node emc_createjob.js
Kode contoh lengkap ini dapat ditemukan di sini GitHub
Membatalkan pekerjaan transcoding
Buat modul Node.js dengan nama fileemc_canceljob.js. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk mengunduh klien dan paket yang diperlukan. Buat JSON yang menyertakan ID pekerjaan yang akan dibatalkan. Kemudian panggil CancelJobCommand metode dengan membuat janji untuk memanggil objek layanan MediaConvert klien, melewati parameter. Tangani respons dalam callback janji.
catatan
Ganti JOB_ID dengan ID pekerjaan yang akan dibatalkan.
// Import required AWS-SDK clients and commands for Node.js import { CancelJobCommand } from "@aws-sdk/client-mediaconvert"; import { emcClient } from "./libs/emcClient.js"; // Set the parameters const params = { Id: "JOB_ID" }; //JOB_ID const run = async () => { try { const data = await emcClient.send(new CancelJobCommand(params)); console.log(`Job ${params.Id} is canceled`); return data; } catch (err) { console.log("Error", err); } }; run();
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node ec2_canceljob.js
Kode contoh ini dapat ditemukan di sini GitHub
Daftar pekerjaan transcoding terbaru
Buat modul Node.js dengan nama fileemc_listjobs.js. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.
Buat parameter JSON, termasuk nilai untuk menentukan apakah akan mengurutkan daftar dalamASCENDING, atau DESCENDING urutan, Nama Sumber Daya Amazon (ARN) dari antrian pekerjaan yang akan diperiksa, dan status pekerjaan yang akan disertakan. Kemudian panggil ListJobsCommand metode dengan membuat janji untuk memanggil objek layanan MediaConvert klien, melewati parameter.
catatan
Ganti QUEUE_ARN dengan Nama Sumber Daya Amazon (ARN) dari antrian pekerjaan yang akan diperiksa, dan STATUS dengan status antrian.
// Import required AWS-SDK clients and commands for Node.js import { ListJobsCommand } from "@aws-sdk/client-mediaconvert"; import { emcClient } from "./libs/emcClient.js"; // Set the parameters const params = { MaxResults: 10, Order: "ASCENDING", Queue: "QUEUE_ARN", Status: "SUBMITTED", // e.g., "SUBMITTED" }; const run = async () => { try { const data = await emcClient.send(new ListJobsCommand(params)); console.log("Success. Jobs: ", data.Jobs); } catch (err) { console.log("Error", err); } }; run();
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node emc_listjobs.js
Kode contoh ini dapat ditemukan di sini GitHub