![](styles/elise/misc/quote_24x24.png)
Zitat von
taaktaak:
Hm, habe mal in alten Unterlagen nachgeschaut: In den ersten 32 Bit eines mp3-Files soll eigentlich der mp3-Header placiert sein. Der enthält ja nun durchaus wichtige Informationen auch für die Wiedergabe.
Wenn ich nun 4 Bytes überschrieben habe, sollten damit eigentlich ALLE diese Informationen vernichtet sein. Seltsam, aber ich möchte im Augenblick nicht weiter ergründen wieso es trotzdem funktioniert.
Höre da lieber noch etwas Weihnachtsmusik
![Dancer](images/smilies/icon_dance.gif)
Eine MP3-Datei besitzt keinen Header. Am Anfang der Datei kann der ID3v2-Tag stehen, beginnend mit "ID3" und Versions- und Größeninformationen des Tags. Danach kommen beliebig viele MPEG-Frames. Am Ende kommen manchmal Lyric-Tags und ggf. 128 Bytes für den ID3v1-Tag, beginnend mit "TAG".
Die 4 Bytes, von denen du sprichst, sind die 4 Byte der MPEG-Frame-Header. Jeder der zig-hundert oder tausend Frames hat diesen Header. Da mp3-Dateien an sich keinen Header haben, muss die Wiedergabe-Engine den ersten solchen MPEG-Frame in der Datei suchen. Das geschieht über den 11-Bit-Marker am Anfang des MPEG-Headers und Konsistenzprüfung der übrigen 21Bit in diesen 4 Bytes. Wenn der am Anfang nicht gefunden wird, suchen die meisten Player noch ein paar Kilobyte weiter.
Wenn man also die ersten 4 Bytes einer mp3-Datei überschreibt, wird nur der erste Frame zerstört (iirc 1/26 Sekunde), der Rest läuft normal. Nur unter bestimmten Umständen wird die gesamte Datei für viele Player unbrauchbar, nämlich dann, wenn der ID3v2-Tag zu Beginn der Datei vorhanden ist und größer ist als die Suchtiefe des Players nach dem ersten Frame. Durch das überschreiben wird der ID3-Tag-Header unbrauchbar, wodurch der Tag nicht vom Dekoder übersprungen werden kann.
Edit: Soviel zu
OT. Die ersten 4 Bytes für einen Tag der Datei zu nutzen ist und bleibt aber eine schlechte Idee, auch wenn das bei mp3-Dateien manchmal ohne sicht/hörbare Auswirkungen bleibt.
The angels have the phone box.