Pages : 1
#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 / 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
Pages : 1