All pastes #899959 Raw Edit

Stuff

public shellscript v1 · immutable
·published 2008-02-11 15:42 UTC
rendered paste body
#!/bin/bashINFILES=( "$@" )WORK_DIR=`pwd`/slideshow-$(date +%s)TV_STANDARD="ntsc"SLIDE_FRAMES=60BINMAX=640AR=1.333FRAME_RATE=29.970VIDSIZE=720x480SLIDE_FADE=:FFMOPTS="-b 8000k -maxrate 9000k -bufsize 224KiB -aspect 4:3"IMGENC_CMD=(ffmpeg -f yuv4mpegpipe -r $FRAME_RATE \-i -  -s $VIDSIZE $FFMOPTS -r $FRAME_RATE -y "$WORK_DIR/slideshow.m2v")###### ---- SNIP ----- ######## make a fifo to send raw yuv to, to be encoded by ffmpegmkfifo "$WORK_DIR/enc.fifo"#cat "$WORK_DIR/enc.fifo" | yuvcorrect | "${IMGENC_CMD[@]}"  &"${IMGENC_CMD[@]}" < "$WORK_DIR/enc.fifo" &exec 3> "$WORK_DIR/enc.fifo"##### ---- SNIP ----- ####### effects unfinished - only dissolve in/out for nowfor f in ${!INFILES[@]}; do    # encode still frames    if ((f==0)); then        ppmtoy4m -n $SLIDE_FRAMES -A 10:11 -I p -r -S 420mpeg2 -r "${INFILES[f]}"    else        ppmtoy4m -n $SLIDE_FRAMES -A 10:11 -I p -r -S 420mpeg2 -r "${INFILES[f]}" | yuvcorrect -T NO_HEADER    fi        base_ppm="$WORK_DIR/${f}.ppm"        if ((f == (${#INFILES[@]} - 1) )); then            overlay_ppm="$WORK_DIR/0.ppm"        else            overlay_ppm="$WORK_DIR/$((f+1)).ppm"        fi        [[ $TV_STANDARD = "ntsc" ]] && fade_frames=30 || fade_frames=25        fade_incr=$(bc -l <<< "scale=2; 100 / $fade_frames") >&2        fade_slide=0        echo >&2        for ((i=0; i<fade_frames; i++)); do            BLEND_AMT=$(bc -l <<< "scale=2; $fade_slide * $fade_incr") >&2            composite_cmd=(composite -blend $BLEND_AMT -depth 8 "$overlay_ppm" \            "$base_ppm" "$WORK_DIR/animenu/$(printf %06d%s $i .ppm)")            "${composite_cmd[@]}" >&2            spin "Compositing ${overlay_ppm##*/} over ${base_ppm##*/} with -blend $BLEND_AMT" >&2            let fade_slide=fade_slide+1        done        echo >&2        echo "Running ppm2y4m to encode ppms" >&2        #ffmpeg -f image2 -i "$WORK_DIR/animenu/%06d.ppm" -pix_fmt yuv420p -f yuv4mpegpipe -        cat "$WORK_DIR"/animenu/*.ppm | ppmtoy4m -n $fade_frames -A 10:11 -I p -r -S 420mpeg2 | yuvcorrect -T NO_HEADER        rm -f "$WORK_DIR"/animenu/*.ppm        if ((f == (${#INFILES[@]} - 1) )); then            ppmtoy4m -n $SLIDE_FRAMES -A 10:11 -I p -r -S 420mpeg2 -r "${INFILES[0]}" | yuvcorrect -T NO_HEADER        fidone >&3# close the pipeexec 3>&-