summaryrefslogtreecommitdiff
path: root/giffeinate.sh
diff options
context:
space:
mode:
Diffstat (limited to 'giffeinate.sh')
-rwxr-xr-xgiffeinate.sh22
1 files changed, 22 insertions, 0 deletions
diff --git a/giffeinate.sh b/giffeinate.sh
new file mode 100755
index 0000000..8e59600
--- /dev/null
+++ b/giffeinate.sh
@@ -0,0 +1,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
+