J'ai des fichiers audio .mp4
et .m4a
que je souhaite convertir en fichiers .mp3
. Je souhaite que les fichiers .mp3
résultants incluent la jaquette incluse dans les fichiers source, sans jouer avec EasyTAG manuellement. Comment puis-je faire ceci?
J'ai écrit un script qui le fera automatiquement. Exécutez simplement le script sur chaque fichier .m4a
ou mp4
, comme ceci, et il produira les fichiers .mp3
dans le même répertoire:
convert-mp4-to-mp3.sh *.mp4 *.m4a
Vous devrez installer ces dépendances:
Sudo apt-get install realpath libav-tools atomicparsley eyed3
Voici le script. Copiez et collez ce contenu et enregistrez-le dans un fichier nommé convert-mp4-to-mp3.sh
:
#!/bin/bash
set -e
for filename in "$@" ; do
if [[ "$filename" == -* ]] ; then
printf "Filename %s must not begin with a dash\n" "$filename" 1>&2
continue
fi
printf "Converting %s\n" "$filename"
filename=$(realpath "$filename")
directory=$(mktemp -d)
cwd=$(pwd)
output="$(basename "$filename" | sed 's/\.[^.]*$//').mp3"
cd "$directory"
avconv -i "$filename" "$output"
ln -s "$filename" "$(basename "$filename")"
AtomicParsley "$(basename "$filename")" --extractPix || true
shopt -s nullglob
for imagefilename in *.jpg *.png *.JPG *.PNG ; do
eyeD3 --add-image="$imagefilename":FRONT_COVER "$output"
break
done
shopt -u nullglob
mv "$output" "$(dirname "$filename")"
cd "$cwd"
rm -r "$directory"
done