Forum: Mikrocontroller und Digitale Elektronik OT: MP3 durschnittliche variable Bitrate ermitteln


von DerMax (Gast)


Lesenswert?

Vielleicht etwas Offtopic hier, aber ich bin wahrscheinlich nich der
erste nen MP3 Player baut und dieses Problem hat: Wie kann ich bei
einem MP3, das mit variabler Bitrate codiert wurde, die
durchschnittliche Bitrate ermitteln um dann aus der Dateigröße auf die
Länge schließen zu können. Es muss relativ einfach gehen, da das
mittlerweile die meisten tragbaren Player können.
Hab schon etwas gegoogelt aber noch nichts brauchbares gefunden.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Ähm... die Bitraten von allen n Frames aufsummieren und durch n teilen?

von DerMax (Gast)


Lesenswert?

Naja das wär die Brute Force Methode :)
Problem dabei ist, das ich die Länge des Lieds ja möglichst schon am
Anfang des Abspielens haben will und dafür sollte sie möglichst schnell
ermittelbar sein.

Hab mir jetzt mal den Sourcecode der Rockbox (eine alternative Open
Source Firmware für die Archos Jukebox) angeguckt. Wenn ich das jetzt
auf die schnelle richtig verstanden habe ermittelt das Programm die
Dauer eines Frames aus dem MPEG-Header und die Anzahl aller Frames aus
einem VBR Header, der in einem VBR codierten MP3 anscheinend meistens
(immer?) vorhanden ist.
Dann kann einfach mit Dauer_eines_Frames*Anzahl_Frames die Dauer des
Lieds berechnet werden und die durchschnitliche Bitrate ergibt sich
dann durch Größe/Dauer.

von nemcron (Gast)


Lesenswert?

Hab noch nie was von nem VBR-Header gehört ?
Was ist das ? - Sitzt der vor den ganzen mpeg-frames ?

von DerMax (Gast)


Angehängte Dateien:

Lesenswert?

Wenn ich das richtig verstehe ist der VBR Header Bestandteil des MPEG
Headers, und es gibt anscheinend verschiedene der Lame Encoder
verwendet einen Xing Header und der FhG Codec einen VBRI Header.

ich hab das betreffende File aus der Rockbox Firmware mal angehangen.
Die interresanten Funktionen sind get_mp3file_info() (Zeile 361) und
mp3headerinfo() (Zeile 118)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.