2008-10-13 9 views
5

Ich kenne viele Dienstprogramme, die mir die Bitrate einer MP3-Datei sagen können, aber ich habe noch nie eine gesehen, die mir sagen kann, ob die MP3-Datei VBR ist (variable Bitrate - die Bitrate) schwankt innerhalb der Datei) oder eine CBR (konstante Bitrate - die Bitrate bleibt in der Datei gleich). Meine Vermutung ist, dass die meisten Programme nicht daran interessiert sind, dies herauszufinden, da es die Datei etwas analysiert, um zu sehen, ob sich die Bitrate ändert, was der Geschwindigkeit abträglich ist.Wie kann ich programmgesteuert feststellen, ob eine MP3-Datei CBR oder VBR ist? (vorzugsweise mit C#)

Also, anstatt ein Dienstprogramm zu finden, würde Ich mag schreiben - so wie könnte ich programmatisch bestimmen, ob eine MP3-Datei VBR oder CBR ist? Ich muss ungefähr 15.000 Dateien durchgehen, um das herauszufinden, also muss ich den Prozess automatisieren.

Antwort

7

MP3-Dateien werden im Wesentlichen bauen von sogenannten Frames. Jeder Rahmen hat einen kleinen Header, der Informationen über den Rahmen speichert. Der Header speichert auch, welche Bitrate für den Frame verwendet wurde. In CBR-Dateien verwenden alle Frames die gleiche Bitrate und daher hat jeder Header die gleiche Bitrateninformation.

Um zu erkennen, ob eine Datei VBR verwendet, müssen Sie jeden Frame der Datei durchlaufen, den Header ansehen und prüfen, ob sich das Bitratenfeld ändert. Wenn ja, ist es ein VBR MP3.

Eine vollständige Beschreibung des MP3-Formats ist hier: http://www.mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm

2

prüfen diese MP3Header Class, hat es eine Methode, die Ihnen sagt, wenn die MP3-Datei VBR ist und alle mp3-Header-Informationen ...

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

Die Methode dieser Klasse verwendet, wenn sich eine VBR-Datei zu bestimmen, ziemlich begrenzt ist. Es wird nur überprüft, ob die Zeichenfolge "Xing" nach dem (optionalen) ID3v2-Header der Datei gefunden wird, aber dies wird von keinem Standard beschrieben und es gibt Encoder, die "Xing" nicht einfügen, auch wenn es sich um eine VBR-Datei handelt . –

Verwandte Themen