本文提供了Node.js SDK,视频拼接和剪辑的操作步骤及完整的代码示例。
操作步骤
- 创建Client实例。
var RPCClient = require('@alicloud/pop-core').RPCClient; var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>', '<YourRegionId>');
- 设置转码参数。
- Input
var RPCClient = require('@alicloud/pop-core').RPCClient; var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>', '<YourRegionId>');
- Output
var outputOSSObject=encodeURIComponent(ossOutputObject); var output = new JSONObject(); output.OutputObject=outputOSSObject; output.TemplateId= templateId;
- Video
var video = {}; video.Width="1280"; video.Height="720"; output.Video=JSON.stringify(video);
- MergeList
var mergeVideo = {}; var dot='.'; var httpStr='http://'; var mergeVideoURL=httpStr.concat(ossBucket, dot, ossLocation, dot ,'aliyuncs.com/', encodeURIComponent(ossInputObject) ); var mergeVideo.MergeURL=mergeVideoURL; var mergeTail = {}; var mergeTailURL = httpStr.concat(ossBucket, dot, ossLocation, dot, 'aliyuncs.com/', encodeURIComponent(tailObject)); mergeTail.MergeURL=mergeTailURL; var mergeList = []; mergeList.push(mergeVideo); mergeList.push(mergeTail); output.MergeList= JSON.stringify(mergeList);
- Input
- 发起API请求并显示返回值。
client.request('SubmitJobs', { Input: JSON.stringify(input), Outputs: JSON.stringtify(outputs), OutputBucket: ossBucket, PipelineId: pipelineId, OutputLocation: ossLocation }, {}).then(function (response) { console.log('response success: = ' + response.JobResultList.JobResult[0].Success); console.log('response jobID: ' + response.JobResultList.JobResult[0].Job.JobId); }).catch(function (response) { console.log(JSON.stringify(response)); });
var RPCClient = require('@alicloud/pop-core').RPCClient;
function initMtsClient(accessKeyId, accessKeySecret, regionId) {
var client = new RPCClient({
accessKeyId: accessKeyId,
accessKeySecret: accessKeySecret,
endpoint: 'http://mts.' + regionId + '.aliyuncs.com',
apiVersion: '2014-06-18'
});
return client;
}
var accessKeyId = "xxx";
var accessKeySecret = "xxx";
var mpsRegionId = "xxx";
var pipelineId = "xxx";
var templateId = "S00000001-200030";
var ossLocation = "xxx";
var ossBucket = "xxx";
var ossInputObject = "input.mp4";//按需配置
var ossOutputObject = "merged.mp4";//按需配置
var headObject = "head.mp4";//按需配置
var tailObject = "tail.mp4";//按需配置
var client = initMtsClient(accessKeyId, accessKeySecret, mpsRegionId)
// Input
var input = {};
input.Location = ossLocation;
input.Bucket = ossBucket;
input.Object = encodeURIComponent(headObject);
// Output
var outputOSSObject = encodeURIComponent(ossOutputObject);
var output = {};
output.OutputObject = outputOSSObject;
// Ouput->TemplateId
output.TemplateId = templateId;
// Ouput->Video
var video = {};
video.Width = "1280";
video.Height = "720";
output.Video = JSON.stringify(video);
// Output->MergeList
var mergeVideo = {};
var httpStr = 'https://';
var dot = '.';
var mergeVideoURL = httpStr.concat(ossBucket, dot, ossLocation, dot, 'aliyuncs.com/', encodeURIComponent(ossInputObject));
mergeVideo.MergeURL = mergeVideoURL;
var mergeTail = {};
var mergeTailURL = httpStr.concat(ossBucket, dot, ossLocation, dot, 'aliyuncs.com/', encodeURIComponent(tailObject));
mergeTail.MergeURL = mergeTailURL;
var mergeList = new Array();
mergeList.push(mergeVideo);
mergeList.push(mergeTail);
output.MergeList = JSON.stringify(mergeList);
// Outputs
var outputs = new Array();
outputs.push(output);
client.request('SubmitJobs', {
Input: JSON.stringify(input),
Outputs: JSON.stringify(outputs),
OutputBucket: ossBucket,
PipelineId: pipelineId,
OutputLocation: ossLocation
}, {}).then(function (response) {
console.log('response success: = ' + response.JobResultList.JobResult[0].Success);
console.log('response jobID: ' + response.JobResultList.JobResult[0].Job.JobId);
console.log(JSON.stringify(response));
}).catch(function (response) {
console.log(JSON.stringify(response));
});