Comme un adage bien connu le dit, un dessin vaut mille mots :
#!/bin/sh
#Nautilus Script Pour Extraires les 15 premières Secondes des fichiers Audio Sélectionnés.
#Création Du Dossier De Sortie S'il N'existe Pas.
if [ ! -d Extraits ]; then
mkdir ~/$user/Extraits
fi
# Dossier Préalablement Crée.
outdir=~/$user/Extraits
OLDIFS=$IFS
IFS="
"
for filename in $@; do
filetype="$(file -bi "$filename" | awk -F "; " '{print $1}' | awk -F "/" '{print $1}')"
if [ "$filetype" != audio ]; then
echo "Skip non-audio file"
else
filesubtype="$(file -bi "$filename" | awk -F "; " '{print $1}' | awk -F "/" '{print $2}')"
if [ "$filesubtype" != mpeg ]; then
file_name_in=$(basename "$filename")
file_name_out="$(basename "$filename" | sed 's/\.[^.]*$//').flac"
ffmpeg -t 15 -i "$file_name_in" $outdir/"Extrait-$file_name_out"
fi
fi
done
Je modifierai bien pleins d'autres choses, mais bon…
Apparemment ce script fonctionne uniquement pour extraire depuis des
fichiers contenus dans le même répertoire. Ces fichiers sont passés en
arguments au script. Aussi la variable « $user » doit faire partie de
l'environnement créé par nautilus car cette variable n'existe pas dans sh et bash.
Aussi, je ne sais pas trop quoi penser de l'expression « ~/$user/Extraits »,
car ~ représente déjà le répertoire de l'utilisateur (c'est $HOME), autrement
dit que vaut $user ?