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.
Ähm... die Bitraten von allen n Frames aufsummieren und durch n teilen?
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.
Hab noch nie was von nem VBR-Header gehört ? Was ist das ? - Sitzt der vor den ganzen mpeg-frames ?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.