mirror of
https://github.com/opensiriusfox/bashrc.d.git
synced 2025-06-16 20:31:15 -07:00
43 lines
855 B
Bash
43 lines
855 B
Bash
#!/bin/bash
|
|
|
|
function batchConvertFLAC() {
|
|
IFS=$'\n'
|
|
INPUT_EXT="${1:-.flac}"
|
|
INPUT_DIR="${2:-./}"
|
|
OUT_DIR="${3:-./output}"
|
|
if [[ "${INPUT_DIR: -1}" != "/" ]]; then
|
|
INPUT_DIR="$INPUT_DIR/"
|
|
fi
|
|
if [[ "${OUT_DIR: -1}" != "/" ]]; then
|
|
OUT_DIR="$OUT_DIR/"
|
|
fi
|
|
|
|
if [[ ! -e "$OUT_DIR" ]]; then
|
|
mkdir -pv "$OUT_DIR"
|
|
fi
|
|
|
|
jMax=${JOBS:-4};
|
|
|
|
pids=()
|
|
FROM="$(readlink -f "$INPUT_DIR")/"
|
|
TO="$(readlink -f "$OUT_DIR")/"
|
|
(
|
|
cd "$FROM"
|
|
for FLAC in *$INPUT_EXT; do
|
|
echo "Converting '$INPUT_DIR$FLAC'..."
|
|
while [[ "$(jobs -r | wc -l)" -ge $jMax ]]; do
|
|
sleep 0.1
|
|
done
|
|
IN_FILE="$FLAC"
|
|
OUT_FILE="$TO${FLAC/.flac/.m4a}"
|
|
#echo "$OUT_FILE"
|
|
ffmpeg -i "$IN_FILE" -n -ab 192k -vn "$OUT_FILE" &>/dev/null &
|
|
pids[${i}]=$!
|
|
done
|
|
for PID in ${pids[@]}; do
|
|
wait $PID
|
|
done
|
|
echo "done."
|
|
)
|
|
}
|
|
#complete -F _minimal batchConvert
|