Video snapshots capture frames of a specific size at specified points in time from a video for use as thumbnails, image sprites, or progress bar previews. You can submit snapshot jobs in the ApsaraVideo Media Processing (MPS) console or by using the API or SDKs. This example uses MPS SDK for Node.js V2.0 to submit a snapshot job with configurable capture time, interval, count, type, and sprite composition.
Sample code
'use strict';
const Mts20140618 = require('@alicloud/mts20140618');
const OpenApi = require('@alicloud/openapi-client');
const Util = require('@alicloud/tea-util');
const Tea = require('@alicloud/tea-typescript');
class Client {
/**
* Use your AccessKey ID and AccessKey secret to initialize a client.
* @return Client
* @throws Exception
*/
static createClient() {
let config = new OpenApi.Config({
// Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is configured.
accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
// Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is configured.
accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
});
config.endpoint = `mts.cn-qingdao.aliyuncs.com`;
return new Mts20140618.default(config);
}
static async main(args) {
let client = Client.createClient();
let submitSnapshotJobRequest = new Mts20140618.SubmitSnapshotJobRequest({
// The job input.
input: '{"Bucket":"example-bucket","Location":"example-location","Object":"example%2Ftest.flv"}',
// The configuration of the snapshot job.
snapshotConfig: '{"OutputFile":{"Bucket":"example-001","Location":"example-location","Object":"{Count}.jpg"},"Time":"5","Num":"10","Interval":"20"}',
// The user-defined data.
userData: 'testid-001',
// The ID of the MPS queue.
pipelineId: 'dd3dae411e704030b921e52698e5****',
});
let runtime = new Util.RuntimeOptions({ });
try {
// Write your own code to display the response of the API operation if necessary.
await client.submitSnapshotJobWithOptions(submitSnapshotJobRequest, runtime);
} catch (error) {
// Handle exceptions with caution in actual business scenarios and never ignore exceptions in your project. In this example, error messages are displayed for reference only.
// The error message.
console.log(error.message);
// The URL of the corresponding error diagnostics page.
console.log(error.data["Recommend"]);
Util.default.assertAsString(error.message);
}
}
}
exports.Client = Client;
Client.main(process.argv.slice(2));