byte berechnung einer mp3
-
tach auch
ich möchte gerne eine berechnung durchführen.
mir ist bekannt wie gross die mp3 in bytes ist. mir ist auch bekannt was für eine bitrate die mp3 hat und nun möchte ich ausrechnen wieviel bytes sind xyz sekunden.leider fehlt mir das rechnerische know how das mir die formel ins auge springt.
wer kann helfen?
-
128 kbps == 128 kilobits pro sekunde... das heisst sind 16 kilobytes pro sekunde...
wenn du also ein file von 64 kilobytes hast, und genau weisst dass das file 128 kbps hat (woher du das weisst kann ich mir auch nicht vorstellen, ausser du liest den header aus), dann hast du 4 sekunden ton.....
und wenn nicht, war alles was ich hier schreibe falsch
-
danke! das versuch ich später gleich.
heisst also nichts anderes als grösse geteilt durch bitrate in kilobytes?also noch anders (in bytes nun)
- grösse in KB * 1024 = ergebniss1
- bitrate in bytes rechnen: 128Kbps * 0.125 = 16KB * 1024 = ergeniss2
- ergebniss1 / ergebniss2 = sekunden?
-
Klappt aber nur solange das file eine konstante bitrate hat, bei VBR encoded files geht diese size->playtime umrechung nicht mehr.
-
yepp, bei CBR macht e sinn und klappt soweit auch. bei VBR haste recht. aber ist es grundsätzlich nicht möglich oder durch einen bestimmten algorithmus doch? wenn man jedes einzelne byte auswertet oder wie auch immer?
-
weil ich frage mich wie winamp sonst die spielzeit ausrechnet wenn es sich um ein VBR kodiertes file handelt.
-
Bedenke aber auch, dass mp3s auch ID3 Tags enthalten können.
Bei VBR könnte man
a) die gesamte Datei durchgehen und aus jedem Header eines Frames die Bitrate extrahieren
b) nur einen ungefähren Wert ermitteln mithilfe von ein paar Headern und einem Mittelwert der Bitrate.
-
Achja, um die genaue Spielzeit in Millisekunden auszurechnen muss man folgendes machen:
(Dateigröße - ID3TagGröße)/(Framelänge + 4 - Paddingbyte)Die Framelänge zu berechnen ist etwas fieser, kann ich aber nach bedarf Code für posten.
Plus 4 deshalb, weil der Header des MP3 Frame genau 4 Byte groß ist.
-
sag niemals nie, sagte mal einer
her mit dem code! hehe. nein schwerz. aber poste ihn wenn du möchtest. würde mich interessieren.
-
Oh, Fehler
Was da oben steht ist die maximale Anzahl der enthaltenen Frames bei konstanter Bitrate.Aber wenn du das nocht mit der Länge der Musik in ms pro Frame multiplizierst erhälst du die Spielzeit der Musik.
-
steht die länge nicht auch im file-header???
-
loki1985 schrieb:
steht die länge nicht auch im file-header???
Per Dateidefinition hat MP3 nur Frameheader keinen Dateiheader.
An MPEG audio file is built up from smaller parts called frames. Generally, frames are independent items. Each frame has its own header and audio informations. There is no file header.
Nachzulesen hier
-
aja... naja, das mpeg-format war mir schon immer etwas suspekt
-
loki1985 schrieb:
aja... naja, das mpeg-format war mir schon immer etwas suspekt
Der Vorteil ist halt, man kann auch defekte MP3s (unvollständig oder mit Datenmüll in der Mitte) ohne größere Probleme abspielen.
-
weisst du zufällig, wie das mit gegensatz dazu mit vorbis aussieht?
verstehe das system nämlich auch nicht ganz. wenn ich es richtig verstehe ist vorbis alleine auch so eine art rohformat, was dann in den ogg-header oder so ähnlich eingebettet wird...
-
Ogg ist ein Container Format von Xiph.org und kann auch andere Codecs enthalten. Der Vorbis Codec wird darin gespeichert und so wie ich es verstanden habe ist der Dateiaufbau einer VBR MP3 recht ähnlich.
-
ah yes. thanx