2008-10-13 5 views
5

Je connais de nombreux utilitaires qui peuvent me dire le débit d'un fichier MP3, mais je n'ai jamais vu un qui peut me dire si le fichier MP3 est VBR (débit binaire variable - le débit binaire fluctue dans le fichier) ou un CBR (débit binaire constant - le débit reste le même dans le fichier). Je suppose que la plupart des programmes ne sont pas intéressés à trouver cela car il s'agit d'analyser le fichier un peu pour voir si le débit change, ce qui enlève de la vitesse. Donc, au lieu de trouver un utilitaire, j'aimerais en écrire un - comment puis-je déterminer par programme si un fichier MP3 est VBR ou CBR? J'ai environ 15 000 fichiers à parcourir pour trouver cela, donc j'ai besoin d'automatiser le processus.Comment puis-je déterminer par programme si un fichier MP3 est CBR ou VBR? (De préférence en utilisant C#)

Répondre

7

fichiers MP3 sont essentiellement construire des soi-disant cadres. Chaque cadre a un petit en-tête qui stocke des informations sur le cadre. L'en-tête stocke également quel bitrate a été utilisé pour l'image. Dans les fichiers CBR, tous les trames utilisent le même débit et donc chaque en-tête a les mêmes informations de débit.

Pour détecter si un fichier utilise VBR, vous devez parcourir chaque image du fichier, regarder l'en-tête et vérifier si le champ de débit binaire change. Si c'est le cas, c'est un VBR MP3.

Une description complète du format MP3 est ici: http://www.mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm

2

Cocher cette MP3Header Class, il a une méthode qui vous indique si le fichier mp3 est VBR, et toutes les informations d'en-tête mp3 ...

... 
boolVBitRate = LoadVBRHeader(bytVBitRate); 
... 
+4

La méthode de cette classe utilise pour déterminer si son fichier VBR est assez limité. Il vérifie simplement s'il trouve la chaîne "Xing" après l'en-tête ID3v2 (facultatif) du fichier, mais ceci n'est décrit par aucune norme et il y a des encodeurs qui ne mettent pas "Xing" dedans même s'il s'agit d'un fichier VBR . –

Questions connexes