Created
August 18, 2021 18:14
-
-
Save augustin64/f9f0d1a407710e64ade667b38eb8f21a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
mkdir "merges"; # On crée le dossier contenant la sortie | |
mmv '*/*"*' "#1/#2 #3" || true; | |
mmv "*/* *" "#1/#2 #3" || true; # simplifie un problème affectant les noms de fichier | |
mmv "*/*'*" "#1/#2 #3" || true; | |
merge () { | |
for directory in */; do | |
if [[ $directory != *"merges"* ]]; then # on itère dans chacun des sous-dossiers | |
cpt=0 | |
files="" | |
cd "$directory" | |
for filename in *.${ext}; do | |
cpt=$((cpt+1)) | |
files+=" -i '${directory}$filename'" # on concatène les éléments pour la commande ffmpeg | |
done | |
cd .. | |
echo $directory | |
merge_file=${directory//\//} # on supprime le "/" à la fin du nom de dossier | |
if [[ $merge_file == *" "* ]]; then | |
merge_file=${merge_file// /_}; # si le nom de dossier contient un ou des espaces, on les remplaces par des " " | |
fi | |
ffmpeg_cmd="ffmpeg${files} -filter_complex amix=inputs=${cpt}:duration=first:dropout_transition=0 'merges/${merge_file}.mp3'" | |
eval $ffmpeg_cmd # on exécute la commande | |
fi | |
done | |
} | |
extensions="mp3 m4a" | |
for ext in $extensions; do | |
merge # on exécute le code pour chacune des extensiosn disponibles | |
done; # cela a l'inconvénient de ne pas fonctionner si un même dossier comprend | |
# des fichiers audios d'extensions différentes | |
# Il doit y avoir un moyen simple de résoudre ce problème mais je ne le considère pas | |
# comme une priorité | |
echo "Done" # On indique à l'utilisateur que le script est terminé |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment