Soyez le premier à donner votre avis sur cette source.
Snippet vu 8 107 fois - Téléchargée 35 fois
// Classe pour trouver le bitrate du fichier mp3 class mp3var { var $bitrate1 = array ( 0x10 => 32, 0x20 => 40, 0x30 => 48, 0x40 => 56, 0x50 => 64, 0x60 => 80, 0x70 => 96, 0x80 => 112, 0x90 => 128, 0xA0 => 160, 0xB0 => 192, 0xC0 => 224, 0xD0 => 256, 0xE0 => 320 ); var $bitrate2 = array ( 0x10 => 8, 0x20 => 16, 0x30 => 24, 0x40 => 32, 0x50 => 40, 0x60 => 48, 0x70 => 56, 0x80 => 64, 0x90 => 80, 0xA0 => 96, 0xB0 => 112, 0xC0 => 128, 0xD0 => 144, 0xE0 => 160 ); // Methode qui renvoie le bitrate du fichier (MP3) entré function getBitrate($nom_fichier) { $done=false; if(!$file=fopen($nom_fichier, "r")) { print "IMPOSSIBLE D'OUVRIR LE FICHIER $nom_fichier"; return false; } else { $point=0; // recherche du ID3 while ((!feof($file)) and (!$done)) { fseek($file, $point); $data=fread($file,2); $data=unpack ("Cint/Cint2",$data); if (($data[int] == 0xFF) and ($data[int2] < 0xFF) and ($data[int2] >= 0xF0)) { $done=true; $id3=$point; } $point++; } fseek($file, $id3); // On se déplace au bon endroit dans le fichier $file $bindata = fread($file, 4); // On lit les 4 prochains octets fclose($file); if(! ($bindata = unpack('nint/C2', $bindata)) ) return false; if (($bindata[int] & 0xFFF0) != 0xFFF0) return false; if (($bindata[int] & 0x08) == 0x08) $this->info[bitrate] = $this->bitrate1[($bindata[1] & 0xF0)]; if (($bindata[int] & 0x08) == 0x00) $this->info[bitrate] = $this->bitrate2[($bindata[1] & 0xF0)]; // On retourne le Bitrate return $this->info[bitrate]; } } // Fin de la fonction } // Fin de la classe // APPEL DE LA FONCTION . . . UTILISATION /************************************************************/ /* Calcul et affichage du bitrate du fichier MP3 (en kbps) */ /************************************************************/ $fichier = "../MonFichier.mp3"; // Chemin vers le fichier mp3 $mp3 = new mp3var; // Instanciation de la classe "mp3var" $btr = $mp3->getBitrate($fichier); // Appel de la méthode getBitrate() echo $btr; // Affichage du bitrate print " kbps";
24 nov. 2012 à 16:07
24 juin 2010 à 01:11
Use of undefined constant int - assumed 'int'
Ca ne fait pas une moyenne pour les bitrates variables au cours du temps? Comme lire tout le fichier et faire une moyenne?
merci.
7 janv. 2007 à 21:06
Mais il ya un petit hic. Qu'en est-t-il des mp3
avec un bitrate de 184, 164 ,etc. Malheursement ca existe,
alors que faire pour remedier à ce problème.
Car j'ai remarqué que les fichiers qui ont comme valeurs autres
que ceux spécifiées dans tes 2 tableaux (array) retournent 128 kbits ????
De même que des fois un fichier de 192 kbits retourne 128 !!!
18 oct. 2006 à 13:06
Sans doute hors sujet, mais je tente...
Je cherhe une fonction (sûrement encore plus simple) qui permet de vérifier qu'un fichier est bien un mp3 et pas un jpg renommé en mp3 par ex.
J'ai bien un site (http://www.mp3-tech.org/) qui donne plein d'infos sur les frame header des fichiers MPEG Audio Layer I/II/III, mais je ne sais vraiment pas comment vérifier tout celà...
merci.
20 juil. 2006 à 04:24
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.