如何将多个 GIF 动画转换为视频?
我使用此命令将 1 个动画 gif 转换为视频:
ffmpeg -i aa0012.gif -crf 12 output.mp4
这是一个更复杂的命令,用于控制转换后的 GIF 的尺寸:
ffmpeg -i aa0012.gif -vf "scale=min(1920/iw\,1920/ih)*iw:min(1920/iw\,1920/ih)*ih,pad=1920:1920:(1920-(min(1920/iw\,1920/ih)*iw))/2:(1920-(min(1920/iw\,1920/ih)*ih))/2" -c:v libx264 output.mp4
我尝试过使用:
-pattern_type glob -i '*.gif'
它适用于大多数图像文件,但当我尝试使用 GIF 时,它返回错误“*.gif:没有此文件或目录”
答案1
动画 GIF 的处理方式与普通“图像”不同。事实上,它们更像实际的视频。这就是为什么您不能-pattern_type
在那里使用图像分离器(即不能使用该选项)。
您需要做的是将每个文件分别转换为具有相同属性的中间文件,然后连接那些。
ffmpeg -i gif1.gif -vf "…" -r 25 -c:v ffv1 output1.avi
ffmpeg -i gif2.gif -vf "…" -r 25 -c:v ffv1 output2.avi
…
ffmpeg -i "concat:output1.avi|output2.avi" -c:v libx264 output.mp4
答案2
我这样做
ffmpeg -i "concat:my1.gif|my2.gif" output.avi
等等……