tnfe / FFCreator

A fast video processing library based on node.js (一个基于node.js的高速视频制作库)
http://tnfe.github.io/FFCreator/
MIT License
2.86k stars 407 forks source link

我采用ffmcreator合成一个2分钟的视频,累计时间9分钟完成,速度超慢能解决吗 #439

Open laobiao168 opened 3 months ago

laobiao168 commented 3 months ago

我我采用ffmcreator合成一个2分钟的视频,里面有用了很多动画操作, 整个视频2分2秒,执行完成需要9分钟左右;服务器是独立主机,8核32G内存; 我通过优化了配置 highWaterMark=‘6mb’ parallel=8; pool=true 没有任何左右,速度仍然很忙

laobiao168 commented 3 months ago

const creator = new FFCreator({ cacheDir, outputDir, width, height, parallel: 8, frames:8, pool:true, highWaterMark:'10kb', audioLoop:false, }); 合成一个2分钟视频,需要9-10分钟

drawcall commented 3 months ago

需要具体分析,可调整及更多ffmpeg params

vb | 无 | string | ffmpeg vb
-- | -- | -- | --
crf | 无 | number (默认crf) | ffmpeg crf
preset | 无 | string | ffmpeg preset
laobiao168 commented 3 months ago

crf参数,我从0 - 10 - 22 - 50 都试过了,合成时间还是9-10分钟,巨慢

laobiao168 commented 3 months ago

preset参数,我从 veryslow到 ultrafast都是试过了,合成时间9-10分钟,巨慢

laobiao168 commented 3 months ago

vb 参数怎么设置呢?

laobiao168 commented 3 months ago

@drawcall

laobiao168 commented 3 months ago

const creator = new FFCreator({ cacheDir, outputDir, width, height, audioLoop:false, highWaterMark: '32mb', //合成速度慢 renderClarity:'low', frames: 8, threads: 8, pool:true, //preset:'veryslow', //合成速度慢 //crf:50, //合成速度慢 //vb:'512kb' //VB该怎么设置呢? });

laobiao168 commented 3 months ago

@drawcall

drawcall commented 3 months ago

需要具体分析你的动画,追求速度可以使用ffcreatorlite或者v2.0

laobiao168 commented 3 months ago

ffcreatorlite有些需求实现不了。 v2.0是 ffcreator V2.0.8这个版本的代码吗 @drawcall

laobiao168 commented 3 months ago

使用lite版本,我把ffcreator代码拿过去运行,提示FFAudio is not a constructor

laobiao168 commented 3 months ago

@drawcall 大佬,使用lite版本,我需要要在视频中播放声音文件怎么操作,lite版本有文档或者demo吗?

drawcall commented 3 months ago

有点忙 回头帮你看sorry

laobiao168 commented 3 months ago

@drawcall ,大佬,记得帮我看看代码。

我刚才用lite版本运行了代码,但是很多方法都报错提示没有定义方法,比如: 1,没有FFAudio ,我的需要是视频中,我需要播放好几段mp3音频 2, FFimage没办法设置图片大小,就是一张图我需要定义他的具体尺寸来生成视频。 目前lite版本我有这2个问题,有lite版的详细文档吗?

laobiao168 commented 3 months ago

// 1.构造 const width = 1920; const height = 1080; const creator = new FFCreator({ cacheDir, outputDir, width, height, //audioLoop:false, //highWaterMark: '32mb', //renderClarity:'low', //frames: 8, threads: 8, });

//2.添加场景 const scene1 = new FFScene(); scene1.setDuration(132);//131秒

creator.addChild(scene1); creator.start();

就上面这段代码,其他啥也不做;总时长132秒; 生成时间需要93秒=1分33秒