суббота, 10 сентября 2011 г.

Создать animated gif под linux

Попробовал два способа:

1. Короткий.

mplayer video.avi -ss hh:mm:ss.lll -endpos hh:mm:ss.lll -vf scale=160:120 -vo gif89a:fps=3:output=out.gif -nosound

(качество получилось так себе.)

2. Длинный.

выбираем нужный кусок и просматриваем его:
mplayer -ao null -loop 0 -ss 0:11:22 -endpos 5 file.avi
(можно было указывать -endpos не в секундах, а тоже в виде hh:mm:ss)

преобразуем понравившийся кусок в кучку джипегов
mplayer input.avi -ss hh:mm:ss.lll -endpos 5 -vo jpeg:outdir=dirname:quality=80

конвертим джпипеги в гифы
for f in /workdir/*.jpg
do
g="${f%.*}.gif"
convert $f $g
done

собираем анимированный gif:
gifsicle --loopcount=0 --delay 8 --colors 256 -O2 -i --resize 480x_ *.gif > ani.gif