我想.gif
从单个.png
帧创建一个,并且正在处理大量非常大的文件。这些.png
文件10GB
总共大约有。
到目前为止,我已经完成了以下工作:
ffmpeg -framerate 30 -pattern_type glob -i '*.png' -filter_complex "split[a][b];[a] palettegen [p];[b][p] paletteuse" out.gif
除非文件数量.png
变得太大,否则它工作正常。据我所知,问题在于palettgen
过滤器,它超出了可用磁盘空间,占用了多达90GB
。
我也尝试过创建单独的.gif
文件,然后将它们连接起来,但这导致第一个文件.gif
一遍又一遍循环,而第二个文件.gif
根本不播放。
我尝试过的另一件事是创建一个中间.mkv
文件和一个.png
调色板文件,然后使用它们来创建最终的.gif
。
ffmpeg -i in.mkv -i palette.png -lavfi paletteuse out.gif
这将引发以下错误:
Error while filtering: Internal bug, should not have happeneditrate=198092.4kbits/s speed=0.19x
Failed to inject frame into filter network: Internal bug, should not have happened
Error while processing the decoded data for stream #0:0
后者似乎是最有前途的方法,所以如果有人可以提供可能有效的命令,那就太好了。