我很高兴重新审视 ffmpeg 并进行修改,但是有人可以帮助我简化“静止图像/添加交叉淡入淡出/保存为 gif”过程吗?
我试图消除将静态图片转换为中间视频文件(添加淡入淡出)的需要,然后再读取视频以提取 gif 调色板文件,然后再次读取视频以将视频转换为 gif。(我的努力令人不快,而且调色板文件到目前为止无法读取)。
有人能告诉我们是否可以使用下面的视频创建例程来直接提供调色板创建,然后提供最终的 gif 吗?(或者获取调色板流并一次性完成?)并不是说 rm 和 del 不是选项,而是系统依赖,但中间过程越少,当我转身时出错的可能性就越小。
ffmpeg -i "nlm%2d.png" -vf
zoompan=d=4/3:fps=1/3,framerate=25:interp_start=0:interp_end=255:scene=100 -
c:v mpeg4 -b:v 5M -q:v 0 out.mp4
F:\Users\QuinB\WF - ffmpeg\crossfade>dir
13/11/2018 21:35 28,553 nlm01.png
13/11/2018 21:35 26,351 nlm02.png
13/11/2018 21:35 28,400 nlm03.png
13/11/2018 21:35 31,235 nlm04.png
13/11/2018 21:35 34,553 nlm05.png
14/11/2018 11:50 1,177,150 out.mp4
创建 mp4 文件后,我们使用众所周知的(几乎未修改的)序列:
ffmpeg -v warning -i out.mp4 -vf fps=10,palettegen -y out_palette.png
ffmpeg -v warning -i out.mp4 -i out_palette.png -lavfi "fps=10[x]; [x][1:v] paletteuse" -y out.gif
感谢论坛上的朋友们,他们分享了自己的知识,并帮助我学习了许多 ffmpeg 知识。QB
资料来源: FFMPEG 中级指南/图像序列
答案1
使用
ffmpeg -i "nlm%2d.png"
-filter_complex "zoompan=d=4/3:fps=1/3,framerate=25:interp_start=0:interp_end=255:scene=100,
fps=10,split=2[pal][vid];[pal]palettegen[pal];[vid]fifo[vid];
[vid][pal]paletteuse" -y out.gif