Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1690 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  script shell : utiliser la durée des fichiers audio

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

script shell : utiliser la durée des fichiers audio

n°879868
hdiamant
Posté le 21-01-2007 à 18:13:33  profilanswer
 

Bonjour tout le monde,
 
Je manipule quotidiennement plusieurs dizaines de fichiers audio (tout format mp3, ogg, wma...) et entre autre, pour chacun d'eux, je renseigne manuellement une base mysql où je mets le nom du fichier et la durée du fichier + la date du jour.
 
J'ai pensé que tout cela pouvait être fait par un petit script bash.
 
Pour le moment, mon seul problème vient de la façon dont on accède aux tags du fichier audio. Comment récupérer la "durée" du fichier audio? Si quelqu'un a une idée !


Message édité par hdiamant le 22-01-2007 à 13:39:04
mood
Publicité
Posté le 21-01-2007 à 18:13:33  profilanswer
 

n°879894
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 21-01-2007 à 20:27:51  profilanswer
 

Ben pour ca faudrait un lecteur de tag en console (une ptite recherche sur ma debian renvoie : id3v2, id3tool, lltag).
Plus bourrin : utiliser un player comme amarok, qui remplit une base de données mysql pour gérer sa collection de mp4
Encore plus bourrin : utiliser hachoir-metadata pour  analyser le code binaire du mp3, ca renvoie titre, auteur, durée (mais bon lire les tags c'est autrement plus intelligent)


Message édité par Xavier_OM le 21-01-2007 à 20:28:20

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°879906
hdiamant
Posté le 21-01-2007 à 20:49:25  profilanswer
 

oui, ce n'est pas simple.
 
Les outils de type id3v2 sont bien pratiques mais ils ne renvoient pas la durée des enregistrements. de plus mes captures audio sont en mp3, ogg, wav...
 
évidemment, je ne compte pas utiliser Amarok (étant un gnome user) !
 
Donc je cherche encore  !

n°879908
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 21-01-2007 à 21:00:11  profilanswer
 

hdiamant a écrit :

oui, ce n'est pas simple.
 
Les outils de type id3v2 sont bien pratiques mais ils ne renvoient pas la durée des enregistrements. de plus mes captures audio sont en mp3, ogg, wav...
 
évidemment, je ne compte pas utiliser Amarok (étant un gnome user) !
 
Donc je cherche encore  !


 
listen ? :D
sinon ya mp3info, mais je pense pas qu'il gère les tag des autres formats :o


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°879909
hdiamant
Posté le 21-01-2007 à 21:07:43  profilanswer
 

Tu connais le Rhythmbox powa ?

 

Sinon, j'ai trouvé sur le forum d'ubuntu extract qui me donne une sortie assez intéressante :

 

$ extract -p format audiodata/audio342.mp3
format - 352 kbps, 12000 hz, 1m24 stereo

 

as-tu une idée pour tuber et récupérer cette durée? J'aurais tellement préféré un truc du genre hh:mm:ss !!!


Message édité par hdiamant le 21-01-2007 à 21:09:01
n°879914
hdiamant
Posté le 21-01-2007 à 21:55:52  profilanswer
 

Bon, extract ne me donne pas la durée de toute façon avec un ogg.
 
La solution, c'est hachoir-metadata... mais bon, c'est bourrin, tu disais?

n°879922
hdiamant
Posté le 21-01-2007 à 22:47:55  profilanswer
 

J'ai trouvé la solution pour les MP3. C'est tout simple avec mp3info :
 

Citation :

mp3info -p %m%s


 
Pour les ogg, je ne suis pas sûr du bon moyen de récupérer l'info, que pensez-vous de ça :
 

Citation :

ogginfo audio.ogg | grep Playback


 

n°879946
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 22-01-2007 à 07:47:27  profilanswer
 

hdiamant a écrit :

J'ai trouvé la solution pour les MP3. C'est tout simple avec mp3info :
 

Citation :

mp3info -p %m%s


 
Pour les ogg, je ne suis pas sûr du bon moyen de récupérer l'info, que pensez-vous de ça :
 

Citation :

ogginfo audio.ogg | grep Playback



 
| grep Playback | cut -d " " -f 3


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°879992
hdiamant
Posté le 22-01-2007 à 11:08:13  profilanswer
 

Merci, je vais voir ça  dès que j'aurais un peu de temps !

n°880185
hdiamant
Posté le 22-01-2007 à 20:53:07  profilanswer
 

Alors voilà comment je procède finalement : Je trouve les minutes et les secondes séparément. Comme ça, je pourrai les envoyer plus facilement sous la forme HH:MM:SS dans ma base mysql.
 
Pour les MP3, mp3info -p %m%s  ne va que si les fichiers son taggés, ce qui n'est pas mon cas. J'utilise donc autre chose :

Code :
  1. MM=`mp3info -x $file0 | grep Length | cut -d ":" -f2`
  2.   SS=`mp3info -x $file0 | grep Length | cut -d ":" -f3`


Pour les .ogg, la solution inspirée de Xavier_OM va bien :

Code :
  1. MM=`ogginfo $file0 | grep Playback | cut -d " " -f3 | cut -d "." -f1`


 
Mon problème maintenant, c'est que je n'arrive pas à écrire un if, elif ! Voilà, ce que j'ai écrit et ça marche pas :
 

Code :
  1. # Récupération de la durée du fichier.
  2. # S'il s'agit d'un MP3
  3. if [ "$extend" = "mp3" ] ; then
  4.  MM=`mp3info -x $file0 | grep Length | cut -d ":" -f2`
  5.  SS=`mp3info -x $file0 | grep Length | cut -d ":" -f3`
  6. elif [ "$extend" = "ogg" ] ; then
  7.  MM=`ogginfo $file0 | grep Playback | cut -d " " -f3 | cut -d "." -f1`
  8. `
  9. else
  10.  zenity --info --title="Erreur" --text="Le fichier n'est pas conforme." ; exit
  11. fi
  12. zenity --info --title "Résultat" --text "Durée du fichier : $MM m $SS s."


 
Rien ne se passe ! Je suis preneur de tout conseil ! même sur la manière de présenter le code.


Message édité par hdiamant le 22-01-2007 à 20:56:47

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  script shell : utiliser la durée des fichiers audio

 

Sujets relatifs
script a lancer au demarage d'une session Xscript unix - comparer plusieur repertoires
Changer de répertoire dans un scriptLes fichiers rar sous Mandriva 2007
Pour les pro du script bash - Supprimer les fichiers < 1kScript qui attend un SIGTERM
Freebox V5 : acces au shell ?[RESOLUE] [ALSA] Comment configurer les sorties audio ?
Plus de sujets relatifs à : script shell : utiliser la durée des fichiers audio


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR