dotfiles/bin/convertofut

51 lines
1,015 B
Text
Raw Normal View History

2023-05-12 01:07:35 +02:00
#!/bin/sh
error() {
printf '\033[1;31m%s\033[0m %s\n' "ERROR:" "$1"
shift
exit "$1"
}
trap 'error "$error" "$?"' EXIT; set -e
error="Le premier argument doit être l'extension des fichiers à convertir."
[ -n "$1" ]; format_in="$1" ; shift
error="Le second argument doit être l'extension des fichiers convertis."
[ -n "$1" ]; format_out="$1"; shift
set +e; trap - EXIT
while [ -z "$input" ] ; do
printf '%s' "Dossier à convertir : "
read -r input
done
output=../output
set -e
cd "$input"
mkdir -p "$output"
set +e
case "$format_out" in
mp3)
options="-ab 320k"
;;
*)
;;
esac
for file in **/*".${format_in}"; do
while [ "$(jobs -p | wc -l)" -ge 10 ]; do
sleep 1
done
2023-05-14 16:02:54 +02:00
basename "$file"
2023-05-12 01:07:35 +02:00
output_file="${output}/$(dirname "$file")/$(basename "${file}" ".${format_in}").${format_out}"
mkdir -p "$(dirname "${output_file}")"
2023-05-14 16:02:54 +02:00
# shellcheck disable=SC2086
2023-05-12 11:23:02 +02:00
ffmpeg -loglevel quiet -i "$file" $options "$output_file" &
2023-05-12 01:07:35 +02:00
done
2023-05-12 11:23:02 +02:00
wait
2023-05-12 10:53:34 +02:00