nochmals zu mp3
-
Ich versuche grade mp3s auszulesen, mir geht es vor allem darum die bitrate zu bestimmen,
die steht im frameheader, der mit 11 (oder 12) einsen beginnt,
11 aufeinaderfolgende gesetzte bits zu finden ist kein problem, nur wie kann ich mit sicherheit sagen, dass diese den anfang eines frames repräsentieren und nicht zufäälig zB in meinen audiodateien stehen ?
-
Setz dich mal genauer mit dem Format auseinander

-
indem du
a) am anfang anfängst zu suchen
und
b) zum ende eines frames springst wenn du eins gefunden hast
-
Die Framegröße wird durch die Anzahl der Samples bestimmt und ist innerhalb eines Layers konstant. Im Format Layer 1 sind dies stets 384 Samples pro Frame, bei Layer 2 und 3 kommen 1152 auf ein Frame
ist zwangsläufig die erste bitkonstellation mit 11 gesetzten bits der beginn meines ersten frames?
am ende der mp3 stehen ja noch die tags, aber am anfang??
ich hab mal eine mit nem hexeditor geöffnet, was ich sehe irritiert mich etwas...
es scheinen informationen am anfang der datei zu stehen, dann eine menge von nichst, bevor es dann richtig anfängt...ich kann den anfang irgendwie nicht interpretieren, ich hab nirgendwo was davon gelesen dass am anfang einer mp3 etwas steht... ( das obendrein auch noch us-ascii zu sein scheint)
ein guter link zum aufbau einer mp3 ist auch immer gut, bisher orientiere ich mich an
http://www.fh-jena.de/contrib/fb/et/personal/ansorg/mp3/mp3_2_res.htm
-
ist zwangsläufig die erste bitkonstellation mit 11 gesetzten bits der beginn meines ersten frames?
wenn das file nicht "kaputt" ist, dann ja.
wobei du nicht nach 11 gesetzten bits in folge suchst, sondern nach einem byte wo alle bits gesetzt sind gefolgt von einem byte wo zumindest die ersten drei bits gesetzt sind. anders gesagt: du suchst 11 gesetzte bits beginnend an einer byte-grenze.der ID3v2 tag kann zwar am beginn eines files stehen, bloss verwendet der extra mechanismen die dafür sorgen, dass keine bytefolge vorkommt, die man für eine frame-header halten könnte. stichwort "unsynchronization".