ChrisB: Länge einer mp3 durch Dateigröße berechnen

Beitrag lesen

Hi,

Steht der Kompressionsgrad also vielleicht sogar in der mp3?

Der Begriff „Kompressionsgrad“ ist in diesem Zusammenhang Unfug.

Am gebräuchlichsten heutzutage dürften MP3s mit variabler Bitrate (VBR) sein. Damit kann jeder Frame eine andere Bitrate haben.
Wenn also im Header/den ID3-Tags keine Information über die Gesamtlänge steht - und das muss sie m.W. nicht - dann kannst du nur jeden Frame einzeln untersuchen, um aus dessen Bitrate und der Samplingrate der Gesamtdatei auf die Länge in Millisekunden zu schließen, und das ganze aufaddieren. Dabei gibt's dann aber auch wieder einige Fallstricke zu beachten, bspw. Sachen wie das “bit reservoir”, wo ein nicht komplett gefüllter Frame schon Audiodaten für den Folgeframe aufnimmt, und ähnliche Späße.

Hinzu kommt noch, das längst nicht jede MP3-Datei, die so im Netz rumschwirrt, auch gemäß der Spezifikation aufgebaut ist. Wenn du also auch MP3s aus „dubiosen“ Quellen (sprich: bspw. von Nutzern irgendwo hochgeladene) einbeziehen willst, dann wirst du auch noch einiges ins Fehler-Handling investieren müssen.
(Die Leute machen mit ihren MP3s eine Menge Murks, „zusammenkopieren“ mehrere Dateien zu einer, so dass auch mittendrin ID3-Tags stehen, etc. pp.)

Meint Tipp: Suche dir irgendeine Lib, die das ganze für dich macht.
Um das selber zu realisieren, wirst du dich weitaus intensiver mit der Spezifikation auseinandersetzen müssen, als du dir bislang erträumt hast.

MfG ChrisB

--
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?