Лямбда-функция AWS - вызов нескольких блоков внутри вопроса - PullRequest
0 голосов
/ 17 ноября 2018

Я вызываю три блока внутри лямбда-функции aws, поэтому я хочу выполнить блок кода вызова один за другим, значит должно быть время ожидания выполнения могу увидеть мой код

в этом я упомянул первый блок, второй блок и третий блок я хочу выполнить мой первый код блока после этого запуска второго блока, а затем должен быть выполнен третий блок.

Я никогда не хочу использовать функцию setTimeout, я думаю, что это не правильно.

'use strict';

const ffmpeg = require("fluent-ffmpeg");

const finalVideoPath = __dirname + "/bin/video.mp4";

const margeVideoPath = __dirname + "/video/videofinal.mp4";

const Jimp = require("jimp");

const frames = [

  __dirname + "/images/FullSizeRender-1.jpg",
  __dirname + "/images/FullSizeRender-2.jpg",
  __dirname + "/images/FullSizeRender-3.jpg",
 __dirname + "/images/FullSizeRender-4.jpg",
 __dirname + "/images/FullSizeRender-5.jpg",
 __dirname + "/images/FullSizeRender-6.jpg",
 __dirname + "/images/FullSizeRender-7.jpg",
 __dirname + "/images/FullSizeRender-8.jpg",
 __dirname + "/images/FullSizeRender-9.jpg",
 __dirname + "/images/FullSizeRender-10.jpg",
 __dirname + "/images/FullSizeRender-11.jpg",
 __dirname + "/images/FullSizeRender-12.jpg",
 __dirname + "/images/FullSizeRender-13.jpg",
 __dirname + "/images/FullSizeRender-14.jpg",
 __dirname + "/images/FullSizeRender-15.jpg",
 __dirname + "/images/FullSizeRender-16.jpg",

];

 module.exports.hello = async function

(event, context, callback) {
 return new Promise(function (resolve, reject) {




/* First block*/
//resize images
frames.forEach(element => {
  Jimp.read(element, (err, lenna) => {
    if (err) console.log('error', err);
    lenna
      .resize(1000, 1000) // resize
      .quality(10) // set JPEG quality
      .write(element); // save
  });
  console.log('resize');
});


/* second block*/ 
//create video
setTimeout(() => {
ffmpeg().addInput(__dirname + "/images/FullSizeRender-%1d.jpg")
  .complexFilter([{
    filter: "zoompan",
    options: {
      x: "iw/2-(iw/zoom/2)",
      y: "ih/2-(ih/zoom/2)",
      z: "if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0040))",
      d: "125",
      s: "200x200"
    }
  }])
  .addInputOption(["-framerate 20", ])
  .addOutputOption(["-c:v libx264", "-r 30", "-pix_fmt yuv420p"])
  .addOption("-crf", 26)
  .format("mp4")
  .videoBitrate("1024k")
  .videoCodec("mpeg4")
  .on("error", function (er) {
    console.log("error occured: " + er.message, er);
    reject('er.message');
  })
  .on("end", function (data) {
    console.log("created video has been completed");

  }).save(finalVideoPath);

}, 10000);


  /* thitrd block*/ 
// marge video
setTimeout(() => {

  new ffmpeg({
      source: finalVideoPath,
      nolog: true,
    })
    .mergeAdd(__dirname + "/video/video.mp4")
    .mergeAdd(__dirname + "/video/video2.mp4")
    .mergeToFile(margeVideoPath, function () {

      console.log("marge video");
      resolve();
    });


}, 20000);

})


};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...