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

只要合成时有gif,当次合成能成功,之后任何合成都失败,重启后继续这样... #407

Closed yanyalng closed 1 year ago

yanyalng commented 1 year ago

只要合成时有gif,这一次合成能成功。之后的所有合成,不管有没有gif都失败,重启后又能继续合成,找不到问题在哪里... 1700542038055

yanyalng commented 1 year ago

经过源码初步排查,发现是gif模块的drawing方法会重复调用,比如第一个任务合成了1张gif-A,第二个任务再合成gif-B,那么drawing就会调用两次,还在继续drawing第1张gif...

yanyalng commented 1 year ago

进一步排查,问题出在timeline/update.js的cbs数组里,运行完一个任务后,这个里面还有drawing的callback...

yanyalng commented 1 year ago

找到问题所在了,gif模块的destroy方法,在完成后并没有执行呢...

drawcall commented 1 year ago

可以提交pr

gubeils commented 4 months ago

我现在使用的ffcreator 7.3.5版本,现在遇到了这个问题,请问这个有什么解决办法吗 @yanyalng @drawcall

drawcall commented 4 months ago

这个问题,

sorry精力有限,这个稍晚点fix.

gubeils commented 4 months ago

这个问题,

sorry精力有限,这个稍晚点fix.

好的 辛苦了大佬

drawcall commented 4 months ago

好的 辛苦了大佬

tested it by self and didn't find similar issues. Could you provide your demo code

gubeils commented 4 months ago

@drawcall demo.zip 这个zip是复现的demo,里面仅有2个gif素材进行合成视频,发生同样问题(首次合成能成功,之后任何合成都失败),报错如下图所示。

不过我发现,如果只有1个gif合成视频时,合成视频不会有任何问题。所以有可能是2个gif所造成的冲突?

Clip_2024-07-24_10-14-52

drawcall commented 4 months ago

The reason is that you didn't use FFCreatorCenter but instead executed multiple createVideoPool operations in parallel. Please download the latest version and set creator.cleanAllCache = false; to resolve this issue.

gubeils commented 4 months ago

The reason is that you didn't use FFCreatorCenter but instead executed multiple createVideoPool operations in parallel. Please download the latest version and set creator.cleanAllCache = false; to resolve this issue.

大佬,加了这个参数初步测试没有问题,可以正常生成了,感谢大佬

gubeils commented 4 months ago

@drawcall 大佬,我刚用了最新版本7.5.3 ,刚才测试了下视频合成FFVideo,突然视频不能合成了,麻烦帮忙看下。

drawcall commented 4 months ago

@drawcall 大佬,我刚用了最新版本7.5.3 ,刚才测试了下视频合成FFVideo,突然视频不能合成了,麻烦帮忙看下。

have no errors. Please update your dependencies to include ffmpeg. Or provide code

gubeils commented 4 months ago

@drawcall 大佬,我刚用了最新版本7.5.3 ,刚才测试了下视频合成FFVideo,突然视频不能合成了,麻烦帮忙看下。

have no errors. Please update your dependencies to include ffmpeg. Or provide code没有错误。请更新您的依赖项以包含 ffmpeg。或提供代码

@drawcall 0725demo.zip 7.5.3版本ffvideo不能合成 ;7.3.5正常 ffmpeg version 7.0.1

drawcall commented 4 months ago

version 7.0.1

Run it fine and you can set FFCreator.setFFPath();

gubeils commented 4 months ago

version 7.0.1

Run it fine and you can set FFCreator.setFFPath();

@drawcall 大佬,您是用0725demo.zip运行的吗,我用的是FFCreator7.5.3和ffmpeg7.0.1 合成的视频时黑屏,gif没问题。请问怎么获得FFCreator当前使用的ffmpeg路径或者ffmpeg版本呢? (我ffmpeg5.0版本和7.0.1都试过了) 如果我系统里有两个不同版本的ffmpeg 他会优先使用哪个呢,会根据系统变量设置的吗

gubeils commented 4 months ago

version 7.0.1

Run it fine and you can set FFCreator.setFFPath();

@drawcall 测试环境 win11和rocky linux8.8 大佬 ,因为我用的相同的代码在FFCreator7.5.3和FFCreator7.3.5 生成, FFCreator7.5.3 gif没问题,视频黑屏 FFCreator7.3.5 gif没问题,视频没问题 但不论哪个版本我发现cache目录里都是有有效的图片序列的,只是FFCreator7.5.3的生成出来的视频时黑屏

gubeils commented 4 months ago

version 7.0.1

Run it fine and you can set FFCreator.setFFPath();

@drawcall 大佬, 我刚刚用您官网的示例demo和ffcreator7.5.1 去生成视频,发现也是黑屏。7.3.5合成没问题。 Clip_2024-07-25_19-28-04

drawcall commented 4 months ago

Use the latest version

gubeils commented 4 months ago

Use the latest version

@drawcall 大佬 现在我用ffcreator7.5.6 版本 报错如图下所示 (ffcreator7.5.3没有这个错误) rockylinux 8.8 64bit node 20.12.2 npm 10.5.0 pnpm 9.0.2 image

gubeils commented 4 months ago

Use the latest version

@drawcall 大佬,这个版本可以改为12.x吗,我这边做个测试,看看是不是这个引起的 image

gubeils commented 4 months ago

Use the latest version

@drawcall 大佬, 刚才测试了下,基本确定就是这个node版本问题引起的,如果不影响实际功能的话是否可以改为12.x呢

gubeils commented 4 months ago

Use the latest version

@drawcall 大佬,刚才确认了是下面这两个包引起的,我的linux环境和这个不兼容 "@ffmpeg-installer/ffmpeg": "^1.1.0", "@ffprobe-installer/ffprobe": "^2.1.2",

请问如果不影响代码逻辑的话可以安装这两个版本的吗,对这两个版本是支持的
"@ffmpeg-installer/ffmpeg": "^1.1.0",
"@ffprobe-installer/ffprobe": "1.4.1",
gubeils commented 4 months ago

Use the latest version

@drawcall 大佬现在这个可以哈,麻烦了