Как позволить fluent-ffmpeg завершить рендеринг перед выполнением следующей строки кода? - PullRequest
0 голосов
/ 05 апреля 2020

.forEach () l oop обрезает ffmpeg, поэтому он не полностью завершает sh рендеринг ни одного видео. Как я могу позволить ffmpeg завершить рендеринг sh до следующего l oop?

let videos = [vid1.mp4, vid2.mp4, vid3.mp4];

videos.forEach((vid, i) => {
  ffmpeg(vid)
    .size('1280x720')
    .save(vid);
}

1 Ответ

0 голосов
/ 12 апреля 2020

Попробуйте код ниже, если вы решите его, не забудьте пометить его как решенный:

createVideos()

async function createVideos(){
    let videos = [vid1.mp4, vid2.mp4, vid3.mp4];
    for(vid of videos){
        await createVideoSync(vid)
    }
}
function createVideoSync(vid){
    return new Promise((resolve,reject)=>{
        ffmpeg(vid)
        .size('1280x720')
        .save('new ' + vid)
        .on('err',(err)=>{
            return reject(err)
        })
        .on('end',(fim)=>{
            return resolve()
        })
    })
}
...