mplayer
首先,您应该使用jpeg
选项设置为 100 (jpeg:quality=100)创建一组具有最高质量的 jpg 图像。
mplayer -ao null -ss 0:00:00 -endpos 10 mts.flv -vo jpeg:outdir=jpeg_dir:quality=100
接下来,您需要使用 将生成的 jpgs 转换为 gifs convert
,只需键入:
for i in ./jpeg_dir/*.jpg; do convert "$i" "${i%.jpg}.gif"; done
最后使用gifsicle
创建动画 gif:
gifsicle --delay=10 --loop ./jpeg_dir/*.gif > anim.gif
此外,您可以使用优化级别标志--optimize=03
。减小文件大小可能会有所帮助:
gifsicle --delay=10 --optimize=03 --loop *.gif > anim.gif
此外,您可以操作--colors num
当前调色板的颜色数量并--color-method method
确定最合适的调色板。
至于我最合适的方法是median-cut
median-cut is the median cut algorithm described by Heckbert
此外,我尝试使用描述的标志进行操作,并找到了最有用的选项来获得更好的生成 gif 图像质量:
gifsicle --delay=3 --optimize=03 --color-method median-cut --loop *.gif > anim.gif
准确与--delay=NUM
对应的动画速度。此参数取决于原始视频的 FPS。