for t in "${cmd[@]}"; do echo "Running nice transcode --print_status 340 -q 1 -i "${IN_FILES[i]}" \ ${NAVSEEK[i]} -o $WORK_DIR/submenu/ \ -f $FRAME_RATE -Z ${GEO_ARRAY[C]},fast -c $t -y $SM_IMG_FMT,null" | sed 's/ */ /g'|sed -e "s/^ *//"|tee -a "$LOG_FILE" TCODE_CMD=(nice transcode --print_status 340 --write_pid /tmp/tcode.pid \ -q 1 -i "${IN_FILES[i]}" ${NAVSEEK[i]} -o "${PICS_OUT[@]}" \ -f $FRAME_RATE -Z ${GEO_ARRAY[C]},fast -c $t -y $SM_IMG_FMT,null) function run_transcode() { "${TCODE_CMD[@]}" >> "$LOG_FILE" 2>&1 sleep 1 } run_transcode & sleep .5 # short sleep to allow 1st jpg to appear TCODE_PID=$(/dev/null; do sleep $SLEEP # spinner interval spin "Seeking in video and creating images: $(find "$JPEG_DIR" \ -maxdepth 1 -name \*.jpg|sort|awk -F / '{ field = $NF }; END{ print field }')" done echo echo "Created $(find "$JPEG_DIR" -maxdepth 1 -name \*.jpg|wc -l) JPEGS of $TOTAL_JPEGS" #cleanlog 1 else #cleanlog 1 runtime_error "Problem creating images from the video." $FROM_GUI && exit_from_gui || exit 1 fi ) unset TCODE_CMD cmd run_transcode if ! $ANI_SUB_MENU ; then echo mv $WORK_DIR/submenu/000000.$SM_IMG_FMT \ $WORK_DIR/submenu/$(printf "%08d%s\n" ${t%-*} .$SM_IMG_FMT) elif $ANI_SUB_MENU; then echo "renaming images by frame number" echo u=${t/*-}; v=${t/-*} for ((n=0; n<340; n++)); do if [ $v -eq 30 ]; then mv $WORK_DIR/animenu/$(printf "%06d%s\n" $n .jpg) \ $WORK_DIR/animenu/$(printf "%08d%s\n" $((n+30)) .jpg) else mv $WORK_DIR/animenu/$(printf "%06d%s\n" $n .jpg) \ $WORK_DIR/animenu/$(printf "%08d%s\n" $((n+v)) .jpg) fi done fi done if $ANI_SUB_MENU ; then # move 340 images to each subdir: $WORK_DIR/animenu/{0,1,2,3,etc} echo "moving images into subdirectories" for ((a=0; a<${CHAPTERS[i]}; a++)); do pics=( $(find $WORK_DIR/animenu/ -maxdepth 1 -name 00\*.$SM_IMG_FMT | sort|head -n 340) ) echo "${pics[@]}" >> "$WORK_DIR/pics.log" for f in ${pics[@]}; do mv $f $WORK_DIR/animenu/$a done done for ((a=0; a<${CHAPTERS[i]}; a++)); do find $WORK_DIR/animenu/$a/ -name 00\*.$SM_IMG_FMT | sort| head -n 20|xargs rm -f find $WORK_DIR/animenu/$a/ -name 00\*.$SM_IMG_FMT | sort|tail -n 20|xargs rm -f done # clean up left over pics in animenu/ dir # rm -f $WORK_DIR/animenu/*.$SM_IMG_FMT fi if $ANI_SUB_MENU; then echo echo "Making 300 montage images for "${IN_FILES[i]}"" for ((a=1; a<300; a++)); do spin "\rProcessing "$a.$SM_IMG_FMT" " for ((b=0; b<${CHAPTERS[i]}; b++)); do IMGS=( "${IMGS[@]}" $(find $WORK_DIR/animenu/$b \ -name \*.$SM_IMG_FMT| sort|head -n $a | sed -n -e "$a p") ) done IM_CMD=(montage ${IMGS[@]} -tile ${TILE_ARRAY[C]} \ -geometry ${GEO_ARRAY[C]}+5+5 -bordercolor '#161514' \ -mattecolor '#161514' -background '#161514' miff:-) IM_CMD2=(convert $WORK_DIR/submenu_template.jpg \ $WORK_DIR/title${i}_txt.png -gravity south \ -geometry +0+55 -composite - -gravity north -geometry +0+45 \ -composite $WORK_DIR/animenu/$a.$SM_IMG_FMT) "${IM_CMD[@]}" | "${IM_CMD2[@]}" unset IMGS done unset IM_CMD IM_CMD2 d f PIC else # not $ANI_SUB_MENU . . . . . . . . .