Как исправить ошибку метки времени в эластичном транскодере при создании кода задания в nodeJs? - PullRequest
0 голосов
/ 15 октября 2019

Я хочу перекодировать видео мультимедийный контент, который находится в корзине 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);
        }
    });
});
}
...