Calculer la durée d'un fichier mp3 avec le biterate et la taille [Fermé]

Signaler
Messages postés
90
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
10 juin 2014
-
Messages postés
90
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
10 juin 2014
-
Bonjour,
je suis entrain de me galérer à calculer la durée d'un fichier mp3 à partire du biterate et de sa taille!

Voila comment je pensait faire :
<?php 
$biterate = $btr*1024;//c'est en kilo donc je converti
$taille = filesize($fichier);
$dureesec = $taille/$biterate;
$dureemin = $dureesec/60;

echo "
\$biterate = $biterate<br>
\$taille = $taille<br>
\$dureesec = $dureesec<br>
\$dureemin = $dureemin";

?>
?>


Voila l'affichage :
$biterate = 196608
$taille = 4556788
$dureesec = 23.1770222982
$dureemin = 0.38628370497

La musique dure 3min09 en réalité, donc même si on décalle la virgule, ça va pas

Le problème, c'est que ça marche pas, le résultat est faut, et je ne comprend pas pkr, une musique de 10 secondes à 128kbps ne fait pas 1280 kilos octets?.

Pour la librairie id3 je sais que ça marche, mais ça ne m'intéresse pas

2 réponses

Messages postés
90
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
10 juin 2014
30
Je viens de voir que les bit et les octet c pas pareil!!

donc g recalculer, on s'en approche, mais c toujours pas ça :
<?php
$biterate = $kilobitrate*1024;
$octet = $biterate*0.13;
$taille = filesize("a.mp3");
$seconde = $taille/$octet;
$minute = $seconde/60;
?>


affiche ça :
$biterate = 196608;
$octet = 25559.04;
$taille = 4556788;
$seconde = 178.284786909;
$minute = 2.97141311515;
Messages postés
90
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
10 juin 2014
30
Bon ben merde, ça fait depuis hier soir que je suis dessus, j'ai poster sur le forum et j'ai quand même trouver tout seule!

Voici la formule :
$biterate = $kilobitrate*1024;
$taille = filesize("a.mp3")*8;//il faut multiplier lma taille du fichier par 8 pour convertire!
$seconde = $taille/$biterate;
$minute = $seconde/60;