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 18/02/2010, à 03:07

Tuttle

Conversion audio - Traitement par lot (résolu)

Bonjour à tous !

Je débute et me met aux lignes de commande.

J'aimerais, à partir d'un dossier "musique_flac", où se trouvent des dossiers de "groupes", à l'intérieur desquels se trouvent des dossiers "d'albums", et (enfin !!!) où se trouvent mes .flac, effectuer une conversion... de tout mon dossier "musique" en ogg !!!! Et, bien entendu, le tout en gardant la même structure de dossiers, en ayant par exemple un dossier de sortie "musique_ogg"

J'ai regardé comme conseillé, le manuel oggenc, mais si cette commande n'est pas compliquée, je ne sais pas comment traiter des sous dossiers de sous dossiers..... et garder la même structure de dossiers à la sortie du traitement.

j'espère que je n'ai pas trop embrouillé avec mes explications...

Posez-moi des questions si besoin est bien entendu !!

Dernière modification par Tuttle (Le 19/02/2010, à 21:57)

Hors ligne

#2 Le 18/02/2010, à 03:58

Hizoka

Re : Conversion audio - Traitement par lot (résolu)

une commande tres pratique :

find

avec cette commande, si on recherche les fichiers flac, ca donne un truc du genre :

find dossier-ma-zic -iname "*.flac"

maintenant, il faudrait qu'il traite chaque fichier trouvé...
ça tombe bien, find à un système pour ça smile

find dossier-ma-zic -iname "*.flac" -exec ta-commande-de-conversion \;

en sachant que pour lui dire, "le fichier trouvé", on lui indique {} tout simplement, la commande doit se terminée par " \;"

une petite vérification de ta part, histoire d'être sur que les flac sont bien en ogg et tu peux supprimer tes flac avec.... find !!! tongue

find dossier-ma-zic -iname "*.flac" -exec rm {} \;

ATTENTION, il supprimera directement les fichiers donc sois sûr de toi !

voila, tu peux poster ta commande finale, avant de l'exécuter si tu veux un avais un avant

Dernière modification par Hizoka (Le 18/02/2010, à 03:59)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#3 Le 18/02/2010, à 13:40

Tuttle

Re : Conversion audio - Traitement par lot (résolu)

Yep ! Merci beaucoup ! Au moins j'ai de la matière à bosser ;o)
Oui... parceque j'ai découvert des commandes, mais j'ai du mal à tout saisir du coup.

A partir d'un dossier, dans lequel je suis, j'arrive à encoder en .ogg tous les fichiers .flac qui y sont. Ca ça n'me pose pas de souci. Dans la conole, je me met dans mon dossier où se trouvent directement les .flac, et donc je tape :

 oggenc *.flac -b 256 -o *.ogg

En revanche, j'ai du mal à utiliser la commande find couplée avec oggenc... Ta méthode (qui, parceque j'ai pas tout compris, n'a pas marché), créé-t-elle un nouveau répertoire du type dossier-ma-zic-ogg ???

Je sais pas si j'ai été très clair, alors je vais retenter d'expliquer. Mais soyons d'accord, je suis sûrement dans les choux à ne pas avoir compris ces explications.

Dans mon "dossier-ma-zic-flac" j'ai un tas de dossiers du genre :
artiste => album => *.flac

J'aimerais pouvoir en une ligne de commande, faire mon "dossier-ma-zic-ogg" en gardant la même architecture artiste => album => *.ogg

Voilà...

Alors, en pratique, mon "dossier-ma-zic-flac" est sur mon bureau. Je fais :

 find dossier-ma-zic-flac -iname "*.flac" -exec oggenc *.flac -b 256 -o *.ogg \;

Et ça m'indique

Erreur : impossible d'ouvrir le fichier d'entrée « *.flac » : Aucun fichier ou dossier de ce type
Et ça, autant de fois qu'il y a de fichiers .flac...

Il y a bel et bien des .flac dans mes sous dossiers...

Pour info, j'ai trouvé ça sur le net : http://lists.lolica.org/pipermail/lolica/2009-June/002175.html J'ai pas plus compris... ;o)

Dernière modification par Tuttle (Le 18/02/2010, à 13:48)

Hors ligne

#4 Le 18/02/2010, à 14:27

AnsuzPeorth

Re : Conversion audio - Traitement par lot (résolu)

Bjr,
Pour faire ce que tu veux, plusieurs solutions possible.
Soit, ton dossier musique tu en fait une copie et tu passe ta commande en écrasant l'original (je connais pas oggenc mais ca doit être possible)
Soit tu fais un script un peu plus long qui créer le répertoire avant la conversion (c'est possible avec exec de find mais ca risque de donner une ligne peu lisible).
Soit, ...ben doit y avoir d'autres solutions, c'est ça le truc intéressant, chacun sa façon de voir/faire les choses.

Donc, si tu travail sur une copie de ton dossier, en écrasant l'orignal.

#en supposant que la commande oggenc soit correcte. 
# {} est le fichier matché par find
find /ton/dossier_musique -iname "*.flac" -exec oggenc {} -b 256 \;

Ou alors en faisant un script (tu dois pouvoir en trouver plusieurs exemplaire sur le forum programmation ou truc et astuces)
Ca sera un truc du genre (voir option printf de find pour formater la sortie)

find /ton/dossier_musique -iname "*.flac" | while read ligne
do
extraire chemin
creer dossier
encoder dans dossier
done

ou via exec (moins lisible)

find /ton/dossier_musique -iname "*.flac" -exec bash -c "extraire chemin; creer dossier; encoder dans dossier" \;

Cherche un peu, tu trouveras ton bonheur sur ce forum, ce genre de script est souvent demandé.


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#5 Le 18/02/2010, à 23:14

Hizoka

Re : Conversion audio - Traitement par lot (résolu)

que veux tu faire exactement ?

1 - créer les ogg dans les mêmes dossiers que les flac
2 - reprendre la même architecture des dossiers content du flac et le reproduire ailleurs pour les ogg ?

Le plus simple étant le 1.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#6 Le 19/02/2010, à 02:17

Tuttle

Re : Conversion audio - Traitement par lot (résolu)

J'ai décidément beaucoup de mal à m'exprimer smile

Ma démarche, c'est de "sauvegarder" tous mes CD audio en .flac (pour garder la qualité mais sur mon ordi, plus pratique...) mais d'avoir ce même dossier bibliothèque, en .ogg pour mettre sur ma clé mp3 (enfin clé ogg pour le coup...). Donc réponse 2 mon général ! Je veux garder les .flac ET les .ogg, mais faire deux répertoires différents, avec la même architecture. Si possible sans copier une deuxième fois le dossier flac, ça prendrait pas mal de place sur mon disque dur, même si ce n'est que temporaire :s

Ca aura au moins le mérite de m'apprendre quelques lignes de commande smile

Merci AnsuzPeorth, je vais chercher un peu, mais la dernière solution j'aime bien, même si c'est illisible, un p'tit copié collé marchera très bien ! Je suis en train de me former sur le site du zéro (http://www.siteduzero.com/tutoriel-3-12827-reprenez-le-controle-avec-linux.html) mais j'en suis pas encore au chapître des scripts ! Donc je vais chercher un peu (et apprendre !) mais si Hizoka tu peux m'aider c'est royal ! smile

Merci à vous !

Dernière modification par Tuttle (Le 19/02/2010, à 02:18)

Hors ligne

#7 Le 19/02/2010, à 02:33

AnsuzPeorth

Re : Conversion audio - Traitement par lot (résolu)

Si tu débutes, préfére la solution

find | while read ligne
do
fichier=$ligne
done

Plus simple au début, car avec l'option exec de find, fichier={}, ne fonctionne pas, il faudra contourner pour trouver le chemin...un peu tordu.

Alors qu'avec l'option -printf de find, tu peux formater la sortie, donc plus simple a récupérer (tu peux séparer le chemin du fichier, et tu récupère le tout via la variable ligne)

Enfin, tu fais bien comme tu veux wink

Sinon, pour le bash, abs.traduc:
http://abs.traduc.org/abs-5.3-fr/index.html

Bon amusement !

Dernière modification par AnsuzPeorth (Le 19/02/2010, à 02:34)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#8 Le 19/02/2010, à 03:05

Hizoka

Re : Conversion audio - Traitement par lot (résolu)

perso je ferais un truc du genre (j'essai de faire le plus clair possible même si ça rallonge):

# Je liste les flac
liste_flac=$(find mon-dossier-de-zic -iname *.flac)

# je liste ces fichiers dans une boucle
echo "${liste_flac}" | while read fichier
do
# Je recupere le dossier dans le quel se trouve le fichier en cours dans la boucle
dossier_flac=${fichier%/*}

# Je modifie le nom du dossier mon-dossier-de-zic en zic_ogg
dossier_flac=${dossier_flac/mon-dossier-de-zic/zic_ogg}

# Je verifie que ce dossier n'exite pas
if [[ ! -e ${dossier_flac} ]]
then
# s'il n'existe pas, je le crée, lui est ses sous dossiers, sinon, je ne fais rien
mkdir -p "${dossier_flac}"
fi

# Maintenant, je recupere le nom du fichier flac en enlevant son extension (sera utile apres)
nom_flac=${fichier##*/}
nom_flac=${nom_flac%.*}

# Maintenant je convertie le fichier flac en ogg avec ta commande pour que cela arrive directement dans le nouveau fichier
oggenc "${fichier}" -b 256 -o "${dossier_flac}/${nom_flac}.ogg"

done

Alors, oui y a plus court, plus simple, mais si tu comprends ça alors c'est le principal, il ne te reste qu'a adapter le nom "mon-dossier-de-zic" en gros.

comme conseillé par ansuz, lis l'abs.traduc , c'est long mais interressant et riche.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#9 Le 19/02/2010, à 13:25

Tuttle

Re : Conversion audio - Traitement par lot (résolu)

Waw... bon c'est décidé, j'vais continuer à m'auto-former ! Merci beaucoup pour le lien AnsuzPeorth !!! je garde ça bien rangé dans mes marques-pages ! Merci à toi aussi Hizoka ! Je vais avoir pas mal de lignes de commandes à potasser big_smile

En attendant, et pour ceux qui tomberaient sur cette discussion, j'ai trouvé soundconverter (http://soundconverter.berlios.de/) qui fait quasiment ce que je veux faire, mais qui me suffira bien pour le moment : en gros, il ne garde pas exactement la même architecture de dossiers, mais classe tout de même toutes les conversion dans un dossier "artiste - album"... donc je m'y retrouverai peut-être même plus facilement.

Je ne lache quand même pas l'affaire ! Ces prochains temps mon travail m'en prendra pas mal... de temps ! Mais j'ai envie de me plonger un peu plus dedans pour mieux prendre en main mon ordinateur.

Donc merci à vous ! J'vais bosser un peu tout ça et je reviendrai quand j'aurais saisi les tenants et les aboutissants mieux qu'à l'heure actuelle !

Bon week end à vous !

Hors ligne

#10 Le 19/02/2010, à 18:56

Hizoka

Re : Conversion audio - Traitement par lot (résolu)

tu peux mettre un [resolu] dans le titre de ton topic alors smile


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#11 Le 19/02/2010, à 21:56

Tuttle

Re : Conversion audio - Traitement par lot (résolu)

Yes ! Et pour conclure, en fait sound converter fait finalement exactement ce que je voulais faire smile eh eh

Encore merci !

Hors ligne

#12 Le 20/02/2010, à 08:25

Hizoka

Re : Conversion audio - Traitement par lot (résolu)

resolu, resolu, resolu tongue


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#13 Le 05/06/2010, à 17:44

Tuttle

Re : Conversion audio - Traitement par lot (résolu)

Un bon logiciel présent dans ubuntu studio : Audex. il fait tout ce que je voulais faire, il est super simple et efficace ! A+ !

Hors ligne