如何使用ffmpeg从avi生成gif?

我正在尝试使用以下命令将video的一部分提取为GIFanimation:

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

它生成一个animationgif,但质量是疯了。 但是,当我使用以下方法生成gif图像:

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

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

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

出于某些原因,使用ffmpeg生成的animationgif仅包含使用固定的256级系统调色板的103种颜色,导致可怕的结果。 我的解决scheme是

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

然后

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

质量是相当好的。 你可以在这里findgifsicle

编辑:更新post,以反映亚历克斯·卡恩的build议。

我以前没有制作过GIFanimation,但是可以尝试使用比特率参数来指定质量,尽pipe它是一个图像(可能没有速率)。 缩略图质量响应-b参数。 如果通过疯狂,你的意思是“疯狂的坏”,你可以指定一个非常高的比特率和比特率容忍(不知道如果你使用vbr或cbr源)。 (或者如果你的意思是太好,你想限制大小,则做相反的事情)

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

另外,你也可以使用-s参数来改变尺寸,这个尺寸会像“1920X1200”这样的普通外观。

这真的取决于你的源材料的比特率和压缩率,以及你希望GIF会是什么样子。 也许考虑提供比“疯狂”更多的信息,但是我想这会给你一个好的开始。 祝你好运