这个问题在这里已经有了答案:
How to convert multiple files with ffmpeg to GIFs [closed]
(1 个回答)
9 个月前关闭。
我有一个输入列表(gif 和 png 的组合),我试图覆盖并创建一个新的 gif。我能够使用此命令和以下结果来实现这一点:
_ffmpeg
.withOptions([
'-ss 1',
'-i animated.gif',
'-i base-goldfish.png',
'-i eyes-wink.gif',
'-i mouth-pleased.png',
'-i palette.png',
'-filter_complex [0][1]overlay[i1];[i1][2]overlay[i2];[i2][3]overlay',
'-f gif',
])
.output('./res.gif')
.on('start', console.log)
.on('error', console.error)
.run();
如您所见,结果非常粗糙。然后我生成了 palette.png
希望能提高质量。但是我很难找到使用
complex_filter
的语法。结合叠加和调色板。有人知道吗?ps1:我也尝试生成一个mp4(质量很好),然后将其转换为.gif,但结果同样糟糕。
ps2:我使用 gifski 将 mp4 转换为 gif 非常成功。但我想避免引入新的依赖项。
最佳答案
适应 How do I convert a video to GIF using ffmpeg, with reasonable quality?
ffmpeg -ss 1 -i animated.gif -i base-goldfish.png -i eyes-wink.gif -i mouth-pleased.png -filter_complex "[0][1]overlay=format=auto[i1];[i1][2]overlay=format=auto[i2];[i2][3]overlay=format=auto,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif
format=auto
已添加到每个 overlay filter以提高覆盖的质量。
关于ffmpeg - 覆盖多个 gif 和 png 并生成一个新的 gif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69431308/