#!/usr/bin/env bash set -euo pipefail if [ $# -ne 3 ]; then echo "Please use this script with \"PATH\" \"Input Extension\" \"Output Extension\"" $(exit 1); echo "$?" fi # TODO argument sanity check dir=$1 inext=$2 outext=$3 numjobs=4 # go to target dir cd "$dir" # select all files readarray -d '' infiles < <(find . -name "*\.$inext" -print0) for file in "${infiles[@]}"; do # only run $numjobs while [[ $(jobs | wc -l) -gt $numjobs ]] ; do sleep 1 ; done # filename file="$(basename "$file")" # no extension noextfile="${file%.*}" # new extension outextfile="${noextfile}.${outext}" # actually use ffmpeg ffmpeg -nostdin -i "$file" "${outextfile}" & done $(exit 0); echo "$?"