###### ---- SNIP ----- ####### # make a fifo to send raw yuv to, to be encoded by ffmpeg mkfifo "$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 now for 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&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 fi done >&3 # close the pipe exec 3>&-