src/ppm2ogv

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    
    #!/bin/bash
    
    AVCONV="`which avconv 2> /dev/null`"
    if test -z "$AVCONV"; then
        AVCONV=`which ffmpeg`
    fi
    
    if test -z "$AVCONV"; then
        echo "ppm2ogv: warning: could not find 'avconv' or 'ffmpeg'" >&2
        echo "ppm2ogv: the output will just be concatenated PPM files" >&2
        command=cat
    else
        # -r 15  '15 frames/sec'
        while test $# -gt 0; do
    	case $1 in
    	    -r) shift; rate="-r $1" ;;
    	    *) options="$options $1" ;;
    	esac
    	shift
        done
        command="$AVCONV -f image2pipe -vcodec ppm $rate -i - -codec:v libtheora -qscale:v 7 -y -f ogv $options -"
    fi
    
    if test -d "$TMPDIR" ; then
        log=`mktemp $TMPDIR/ppm2ogv.XXXXXX`
    else
        log=`mktemp /tmp/ppm2ogv.XXXXXX`
    fi
    
    if $command 2> $log; then :
    else
        cat $log >&2
        rm -f $log
        exit 1
    fi
    rm -f $log
    
    exit 0