All pastes #548474 Raw Edit

Miscellany

public shellscript v1 · immutable
·published 2007-06-07 19:01 UTC
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