Я хочу перекодировать видео мультимедийный контент, который находится в корзине s3, для этого я создал конвейер s3 на консоли aws. Я использую aws-sdk npm, после обновления конфигурации aws создал экземпляр эластичного транскодера, а остальной код приведен ниже.
При выполнении функции createJob выдается ошибка, TypeError: Невозможно установить свойство Timestampиз undefined at features.constructor.addAuthorization.
Что-то не так с реализацией кода или что-то отсутствует?
const AWS = require("aws-sdk");
const config = require("./config/index");
AWS.config = {
accessKeyId: config.env.s3_credentials.keyId,
secretAccessKey: config.env.s3_credentials.accessKey,
region: config.env.s3.region,
bucketName: config.env.s3.publicBucketName,
signatureVersion: config.env.s3.signatureVersion,
transcode: {
video: {
pipelineId: config.env.s3.pipelineId,
outputKeyPrefix: config.env.s3.outputBucketName,
presets: [{
presetId: '1351620000001-200071',
suffix: '_audio'
},
{
presetId: '1351620000001-200035',
suffix: '_video'
}
]
}
}
};
var transcoder = new AWS.ElasticTranscoder();
let transcodeVideo = function(key) {
return new Promise((resolve, reject) => {
let params = {
PipelineId: config.env.s3.pipelineId,
Input: {
Key: key,
},
OutputKeyPrefix: config.env.s3.outputBucketName,
Outputs: AWS.config.transcode.video.presets.map(p => {
return {
Key: `${key}${p.suffix}`,
PresetId: p.presetId,
SegmentDuration: "2"
};
})
};
params.Outputs[1].ThumbnailPattern = `${key}-{count}`;
transcoder.createJob(params, function(err, data) {
if (err) {
console.log(err);
reject(err);
} else if (data) {
console.log(data);
resolve(data);
}
});
});
}