tnfe/FFCreator

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

yanyalng opened this issue · 24 comments

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

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

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

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

可以提交pr

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

这个问题,

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

这个问题,

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

好的 辛苦了大佬

好的 辛苦了大佬

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

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

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

Clip_2024-07-24_10-14-52

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.

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.

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

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

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

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

@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

version 7.0.1

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

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 他会优先使用哪个呢,会根据系统变量设置的吗

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的生成出来的视频时黑屏

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

Use the latest version

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

Use the latest version

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

Use the latest version

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

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",

Use the latest version

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