preset: name: Stabilize video clip (two-pass) group: video plugin: executor props: set: inputtrf: { value:"{%uinput}.trf", escape:true } script: analyze: info: Getting stabilization vectors exec: "transcode -i {%input} -J stabilize" parse: { from: 'stderr', regex: '/encoding frames \[0-([0-9]+?)\],\s+([0-9\.]+?) fps/', frame:1, eta:2 } stabilize: info: Stabilizing video exec: "transcode -i {%input} -o {%output} -J transform -y dv" # -y ffmpeg -F mpeg4" parse: { from: 'stderr', regex: '/encoding frames \[0-([0-9]+?)\],\s+([0-9\.]+?) fps/', frame:1, eta:2 } cleanup: exec: "ls {%inputtrf}" #!/bin/bash #INPUT="$1" #OUTPUT="$1.stab.avi" #CODEC="-y xvid" #if [ -e "$INPUT.trf" ]; then # echo "Cache found, not re-calling stabilize..." #else # Start the deshake process # transcode -J stabilize -i $INPUT || transcode -J stabilize --mplayer_probe -i $INPUT #fi # Now, stabilize the video #transcode -J transform -i $INPUT $CODEC -o $OUTPUT