rendered paste body#!/bin/sh# takes video as input. makes png screens.INFILE=$1NUMSCREENS=$2CURDIR=`pwd`TMPDIR=`tempfile`rm -rf $TMPDIRmkdir $TMPDIR# get total vid playback in secondstotallength=`(echo "get_time_length"; echo "quit") | mplayer -nolirc -slave -quiet -vo null -nosound $INFILE | grep ANS |cut -d'=' -f2 | cut -d'.' -f1`# substract somelet maxlength=$totallength-10# calculate intervallet "interval=$maxlength/($NUMSCREENS+1)"# start screens loopacd $TMPDIRif ! test -e $INFILE; then echo please use full paths to the file exit 1fiscreen=0pos=0echo -n "Making $NUMSCREENS screens in $maxlength time ($totallength) with $interval seconds in between: "while test $screen -lt $NUMSCREENS; do let screen=$screen+1 let pos=$pos+$interval echo -n "$screen, " mplayer -nolirc -quiet -really-quiet -vo png -nosound -frames 5 -ss $pos $INFILE if ! test -e 00000005.png; then echo error, $pos let halfinterval=$interval/2 let pos=$pos-$halfinterval echo error, newpos $pos mplayer -nolirc -quiet -really-quiet -vo png -nosound -frames 5 -ss $pos $INFILE let pos=$pos+$halfinterval echo error, oldpos $pos fi mv 00000005.png shot`printf "%04d\n" $screen`.png rm 0000*pngdoneecho "Done."echo -n "Compressing screens:"compscreen=0for i in $TMPDIR/*png; do let compscreen=$compscreen+1 echo -n "$compscreen, " pngcrush -q $i $CURDIR/`basename $i`doneecho " done."rm -rf $TMPDIRcd $CURDIR