FLAC to MP3 dans des sous-dossiers en ligne de commande

résiste à plusieurs interruption [(Ctrl + c) x 2]

Normalement ça « change rien » pour l’ordinateur, c’est plus pour
l’élégance. En fait y a deux processus à arrêter, d’où les deux « ctrl+c » : y a
cella de « find » qui itère sur chaque fichier, et ffmpeg qui fait la
conversion. Si tu fais que arrêter ffmpeg, find embraye sur un second
à moins que tu ne l’arrêtes avant.

Pour empêcher ça… Mhhhhm.
Ben faut encore ajouter un truc à cette ligne de commande plus si
courte :stuck_out_tongue:

find -name "*.flac" -exec bash -c 'ffmpeg -i "$0" -y -acodec libmp3lame -ab 320k "${0/.flac/.mp3}" && rm "$0" || kill $PPID' {} \;

Pour expliquer en « humain » : find itère sur tout ce qui finit .flac ; à chaque fois il appelle ffmpeg pour la conversion ; si la conversion est un succès, on supprime l’original, si la conversion est une erreur; on arrêter tout.

Sauf qu’un AUTRE problème arrive si on fait ça. Vu que parfois si tu veux reprendre la conversion, ben il y aura des fichiers déjà convertis, et ffmpeg se rendra compte, et t’enverra probablement un code d’erreur, et là ça va tout interrompre.
Hum. Doooonc.
find -name "*.flac" -exec bash -c '[ ! -f "${0/.flac/.mp3}" ] && { ffmpeg -i "$0" -y -acodec libmp3lame -ab 320k "${0/.flac/.mp3}" && rm "$0" || kill $PPID }' {} \;

Mais c’est grave du bricolage et à ce niveau vaudrait ptéte mieux écrire un vrai script :stuck_out_tongue:

2 « J'aime »