我正在尝试使用以下命令将视频的一部分提取为动画gif:
ffmpeg -i video.avi -t 5 out.gif
它生成一个GIF动画,但质量很疯狂。但是,当我使用:
生成gif图像时 ffmpeg -i video.avi -t 10 out%d.gif
它生成可接受的gif图像质量。如何使用第一个命令生成动画gif,但质量与第二个命令相同?
答案 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的样子。也许考虑提供比“疯狂”更多的信息,但我想这将为你提供一个良好的开端。祝你好运