Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/07/2011, à 14:05

Phoenamandre

Bash conversion audio

Couc !

Voilà, je fais un vulgaire petit script capable de convertir en mp3 et ogg tous mes fichiers flac de dossiers et de sous dossiers cependant voilà, il ne fait que le premier fichier flac du premier sous dossier... et je ne comprends pas pourquoi !

voilà le code

 
#!/bin/bash
find . -name *.flac | while read file
do
ffmpeg -i "$file" -ab 128k -ac 2 "${file%.????}.mp3" 
ffmpeg -i "$file" -acodec libvorbis -ab 192k -ac 2 "${file%.????}.ogg"
done

Merci d'avance !

Dernière modification par Phoenamandre (Le 03/07/2011, à 14:05)

Hors ligne

#2 Le 03/07/2011, à 14:31

Wild_Child_87

Re : Bash conversion audio

Bjr,

dirMusique="Dossier Musique"

while read file; do
    ffmpeg -i "$file" -ab 128k -ac 2 "${file%.????}.mp3" 
    ffmpeg -i "$file" -acodec libvorbis -ab 192k -ac 2 "${file%.????}.ogg"
done< <(find $dirMusique -name "*.flac")

Dernière modification par Wild_Child_87 (Le 03/07/2011, à 16:52)

Hors ligne

#3 Le 05/07/2011, à 18:23

Phoenamandre

Re : Bash conversion audio

Oui l'ancienne version du code recherchait dans / big_smile mais je rencontre toujours le même problème, il s'arrête après le premier fichier... le problème vient en fait de ffmpeg parce que voilà mon code actuel

 #!/bin/bash
find . -iname '*.flac' | while read file
do
    REPERTOIRE=`dirname "$file"`
    NAME=`basename "$file"`
    mkdir  -p "/media/stockage/Musiques/mp3/${REPERTOIRE#??}" #mp3
    mkdir  -p "/media/stockage/Musiques/ogg/${REPERTOIRE#??}" #ogg
   ffmpeg -i "$file" -ab 128k -ac 2 "/media/stockage/Musiques/mp3/${REPERTOIRE#??}/${NAME%.????}.mp3"
   ffmpeg -i "$file" -acodec libvorbis -ab 192k -ac 2 "/media/stockage/Musiques/ogg/${REPERTOIRE#??}/${NAME%.????}.ogg"
    echo "${REPERTOIRE#??}"
done;

si je commente les ffmpeg il me crée bien tous les dossiers, et si je mets des & à la fin des ffmpeg le code fonctionne mais ça encode tous les fichiers en même temps, c'est un peu brouillon

Hors ligne

#4 Le 05/07/2011, à 18:51

Flo_

Re : Bash conversion audio

Inspire toi de ça :

for file in *.* ;do ffmpeg -i "$file" -ab 128k  "${file%%.*}".mp3 ; done

Hors ligne

#5 Le 05/07/2011, à 19:00

Wild_Child_87

Re : Bash conversion audio

Bjr essaye:

dirMusique="Dossier Musique"

while read file; do
    ffmpeg -i "$file" -ab 128k -ac 2 "${file%.????}.mp3" </dev/null
    ffmpeg -i "$file" -acodec libvorbis -ab 192k -ac 2 "${file%.????}.ogg" </dev/null
done< <(find $dirMusique -name "*.flac")

En gros, rajoute </dev/null à la fin de tes commandes ffmpeg.

Dernière modification par Wild_Child_87 (Le 05/07/2011, à 19:01)

Hors ligne

#6 Le 06/07/2011, à 17:39

Phoenamandre

Re : Bash conversion audio

Ça marche ! merci beaucoup ! voilà le code final

#!/bin/bash
find . -iname '*.flac' | while read file
do
    REPERTOIRE=`dirname "$file"`
    NAME=`basename "$file"`
    mkdir  -p "/media/stockage/Musiques/mp3/${REPERTOIRE#??}" #mp3
    mkdir  -p "/media/stockage/Musiques/ogg/${REPERTOIRE#??}" #ogg



if [ -f "/media/stockage/Musiques/mp3/${REPERTOIRE#??}/${NAME%.????}.mp3" ]
then
   echo "le fichier existe déjà en mp3"
else
   ffmpeg -i "$file" -ab 128k -ac 2 "/media/stockage/Musiques/mp3/${REPERTOIRE#??}/${NAME%.????}.mp3"</dev/null

fi



        if [ -f "/media/stockage/Musiques/ogg/${REPERTOIRE#??}/${NAME%.????}.ogg" ]
then
   echo "le fichier existe déjà en ogg"
else
    ffmpeg -i "$file" -acodec libvorbis -ab 192k -ac 2 "/media/stockage/Musiques/ogg/${REPERTOIRE#??}/${NAME%.????}.ogg"</dev$

        fi
    echo "${REPERTOIRE#??}"
done;

Il crée les dossiers correspondant au fichier flac, vérifie l'existence du fichier et converti s'il n'existe pas ! merci beaucoup !

Hors ligne