суббота, 3 мая 2008 г.

avi2giff

Вот вобщем то и накалякал скрипт, попозже если стану поумней - нужно будет переписать некоторые моменты, и дополнить но вобщем работает - и для маленьких файликов самое то :) для скрипта необходимы пакеты imagemagick и ffmpeg


#/bin/bash
FILE_NAME=$1
FRAMES=5

#get file info (from stderr)
FILE_LENGTH=`ffmpeg -i $FILE_NAME 2>&1 |grep Dura|awk '{print $2}'|awk -F . '{print $1}'`
HOUR=`echo $FILE_LENGTH|awk -F : '{print $1}'`
MIN=`echo $FILE_LENGTH|awk -F : '{print $2}'`
SEC=`echo $FILE_LENGTH|awk -F : '{print $3}'`

if [[ "$HOUR" -eq 00 && "$MIN" -eq 00 && "$SEC" -lt $FRAMES ]]
then FRAMES="$SEC"
fi

for f in `seq 1 $FRAMES`
do
let "h = $HOUR / $FRAMES * $f"
let "m = $MIN / $FRAMES * $f"
let "s = $SEC / $FRAMES * $f"
h=`printf '%02.2i' $h`
m=`printf '%02.2i' $m`
s=`printf '%02.2i' $s`
time=`echo $h:$m:$s`

ffmpeg -i $FILE_NAME -an -ss $time -r 1 -vframes 1 -an -s 128x96 -y -f mjpeg .screenTmp$f.jpg
done
convert -delay 20 -loop 0 .screenTmp*.jpg $FILE_NAME.gif
rm .screenTmp*.jpg

следующая миссия сделать скриншоты swf.

Комментариев нет: