8791 sujets

Développement web côté serveur, CMS

Bonjour,
j'ai besoin de pouvoir déterminer la durée d'un fichier audio en PHP.
Pour réaliser ceci, je passe actuellement par une classe. Cela pose plusieurs problèmes : L'objet alloué peut être très lourd (imaginez un mix de 160 Mo...), et en +, pour peu que le fichier soit un tantinnet corrompu, le script foire littérallement (division par zero).

Je suis donc à la recherche d'une solution alternative, si quelqu'un a une idée...
- Si c'est du MP3, je crois que php contient des fonctions qui peuvent lire les tags ID3...
- Si c'est du OGG, quelqu'un a sûrement déjà écrit les fonctions équivalentes...
- Si c'est du WMA, demande à Bill, si c'est du AAC, demande à Steeve.
- Si c'est du MIDI, tu n'as pas d'autre choix que de parcourir le fichier en entier (il n'y a pas cette info dans les en-têtes) mais quelqu'un a sûrement déjà écrit des fonctions qui le font...

sinon tu peux essayer de déterminer la durée en fonction de la taille, à condition de connaître les caractéristiques techniques des données audio (taux de compression bitrate, taux d'échantillonnage, etc.). Avec du Wave c'est facile, pour les formats compressés ça se complique...
pour le Mp3 -> en effet, sauf que ces fonctions ne permettent pas d'obtenir la duree du fichier Smiley cligne De plus cela nécessite l'ajout d'une lib, et comme mon script doit être le + portable possible, je préfère éviter Smiley smile Je me bas(ais) déjà sur un calcul à partir du bitrate et frequence d'échantillonage, mais certains fichiers `corrompus` appelait une division par zero pour certaines frames -> fichu php sans exception

pour le Ogg -> je vais continuer de chercher...

pour le Wma -> le W quoi ? 8D

pour le midi -> normalement je ne vais pas en avoir besoin Smiley cligne

--------------------------------------------
Ceci étant dit, j'ai corrigé la classe, fait d'autres tests avec ce que j'ai trouvé à droite à gauche sur le net, et ça semble marcher, + rapidement en +
Bonjour,
Je cherche également à récupérer le durée d'un fichier audio mais seulement pour du mp3.
As-tu trouvé une solution ?
Sinon comment faire pour récupérer le bitrate et la fréquence d'échantillonage ?

Merci pour toute réponse
cklaure a écrit :
Sinon comment faire pour récupérer le bitrate et la fréquence d'échantillonage ?

Cette information est fournie dans les en-têtes du fichier MP3, qui peuvent être lues grâces aux fonctions ID3 de php (cf doc, je ne peux pas vraiment t'aider, je ne les ai jamais utilisées).

a écrit :
pour le Wma -> le W quoi ? 8D

WMA = Windows Media Audio, comme son nom l'indique, un format audio compressé propriétaire de Microsoft, tout comme le WMV pour la vidéo.
Dans ma premiere reponse, j'avais déjà évoqué les problèmes lié à l'utilisation d'une lib externe.

En ce qui concerne le WMA, c'était bien sur ironique, je croyais que cela allait être compris.


Depuis le temps, j'ai résolu mon problème via une nouvelle classe qui marche impeccabelement bien. J'en ferai profiter l'interessé Smiley cligne
Bonjour

Je suis preneur pour cette classe. J'espere aussi que ca marche lorsque les tag ID3 ne sont pas renseignés...
a écrit :

J'espere aussi que ca marche lorsque les tag ID3 ne sont pas renseignés...

En principe ça le devrait. Le bitrate, le taux d'échantillonnage, sont des informations qui sont toujours enregistrées dans le fichier, sinon comment veux-tu le lire correctement ?