summaryrefslogtreecommitdiff
path: root/giffeinate.sh
blob: 8e5960051f1fed828d6050bba8b72f5ee478cd36 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/sh

# Turn video files on STDIN into animated GIFs.

FPS=${FPS:-10}
SCALE=${SCALE:-480}

while [ $1 ]
do
    BASENAME=$(echo $1 | cut -d'.' -f1)
    FRAMEDIR=/tmp/$BASENAME-frames-$(date +%s)

    mkdir -p $FRAMEDIR
    echo Writing frames...
    ffmpeg -loglevel quiet -i $1 -vf scale=-1:$SCALE,fps=$FPS $FRAMEDIR/%05d.png
    echo Creating GIF...
    convert -loop 0 $FRAMEDIR/*.png $BASENAME.gif
    rm -r $FRAMEDIR
    echo Done.
    shift
done