如何使用ffmpeg从avi生成gif?

时间:2011-05-21 02:04:25

标签: ffmpeg

我正在尝试使用以下命令将视频的一部分提取为动画gif:

ffmpeg -i video.avi -t 5 out.gif

它生成一个GIF动画,但质量很疯狂。但是,当我使用:

生成gif图像时

ffmpeg -i video.avi -t 10 out%d.gif

它生成可接受的gif图像质量。如何使用第一个命令生成动画gif,但质量与第二个命令相同?

2 个答案:

答案 0 :(得分:64)

我有一个类似的问题,试图从电影中提取的一系列图像生成高质量的动画gif。

由于某些原因,使用ffmpeg生成的动画gif仅包含103种颜色,使用固定的256级系统调色板可以产生可怕的结果。我的解决方案是

ffmpeg -i video.avi -t 10 out%02d.gif

然后

gifsicle --delay=10 --loop *.gif > anim.gif

质量非常好。你可以找到gifsicle here

修改:更新帖子以反映Alex Kahn的建议。

答案 1 :(得分:0)

我之前没有制作动画GIF,但您可以尝试使用比特率参数来指定质量,尽管它是图像(并且可能没有速率)。缩略图质量响应-b参数。如果疯了,你的意思是,“非常糟糕”,你可以指定一个非常高的比特率和比特率容差(不确定你是否使用vbr或cbr源)。 (或者,如果你的意思是太好而你想要限制尺寸,那就相反了)

'-b', '10000000','-bt', '20000000'

或者,您也可以使用-s参数更改尺寸,这将采用像“1920X1200”这样的尺寸的普通外观表示。

这实际上取决于源材料的比特率和压缩程度以及您希望gif的样子。也许考虑提供比“疯狂”更多的信息,但我想这将为你提供一个良好的开端。祝你好运