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

Fermé
hugs-giver Messages postés 88 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 10 juin 2014 - Modifié par hugs-giver le 24/11/2012 à 16:33
hugs-giver Messages postés 88 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 10 juin 2014 - 24 nov. 2012 à 17:02
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

A voir également:

2 réponses

hugs-giver Messages postés 88 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 10 juin 2014 30
24 nov. 2012 à 16:56
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;
0
hugs-giver Messages postés 88 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 10 juin 2014 30
24 nov. 2012 à 17:02
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;
0