gpt4 book ai didi

ffmpeg - fluent-ffmpeg 如何使视频渲染与代码同步?

转载 作者:行者123 更新时间:2023-12-04 23:12:56 26 4
gpt4 key购买 nike

我想让代码仅在 ffmpeg 完成视频渲染后运行。目前,代码运行速度快于视频渲染速度。

videos.forEach((vid, i) => {
ffmpeg(`${process.cwd()}/video/tmp/${vid}`)
.outputOptions(['-r 30', '-filter:v scale=w=720:h=1280', '-crf 20'])
.save(`${process.cwd()}/video/tmp/${vid}`)
.on('end', ()=> console.log(`Video ${i} rendered`));
});
console.log("Fully Completed");

控制台显示:
Fully Completed
Video 0 rendered
Video 1 rendered

执行应该相反。如何让代码在继续之前等待视频完成渲染?

最佳答案

下面的代码将为您提供帮助:

async function processVideos(){
let videos = [vid1.mp4, vid2.mp4, vid3.mp4];
for(vid of videos){
await processVideoSync(vid)
}
}
function processVideoSync(vid){
return new Promise((resolve,reject)=>{
ffmpeg(`${process.cwd()}/video/tmp/${vid}`)
.outputOptions(['-r 30', '-filter:v scale=w=720:h=1280', '-crf 20'])
.save(`${process.cwd()}/video/tmp/${vid}`)
.on('end', ()=>{
console.log(`Video ${i} rendered`)
return resolve()
})
.on('err',(err)=>{
return reject(err)
})
})
}

o 循环 for of é o unico capaz de esperar o async await .

关于ffmpeg - fluent-ffmpeg 如何使视频渲染与代码同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61038103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com