50 lines
1,015 B
Bash
Executable file
50 lines
1,015 B
Bash
Executable file
#!/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
|
|
basename "$file"
|
|
output_file="${output}/$(dirname "$file")/$(basename "${file}" ".${format_in}").${format_out}"
|
|
mkdir -p "$(dirname "${output_file}")"
|
|
# shellcheck disable=SC2086
|
|
ffmpeg -loglevel quiet -i "$file" $options "$output_file" &
|
|
done
|
|
|
|
wait
|
|
|