ID3Tag Frame Header

CodeFatal

Erfahrenes Mitglied
Guten Abend!

Versuche gerade einen ID3Tagv2.3.0 auszulesen.
Den hab ich zuvor mit Winamp v5.03a erstellt.
Die Anleitung stammt von http://www.id3.org/id3v2.3.0.html

Ist soweit auch alles klar nur wenn ich den FrameHeader ausgelesen habe finde ich als nächstes wenigstens eine NULL.

Das mein FilePointer richtig ist kann man dank Editor verifizieren und einfach überlesen ohne vernünftige Begründung will ich auch nicht.

Ist der Header Null terminiert?
Macht Nullsoft mal wieder was eigenes?
Hab ich irgendwas überlesen (die Flags die was an den Header hängen sind 0)?
Oder welche Begründung für dieses Byte gibt es?

Danke schon mal im voraus

Gruß Michael
 
Ok,

das ist ja schonmal ein Anfang. Anders als bei ID3v1, wo der Tag am Anfang steht, wird der V2 Tag ja am Ende der MP3 gespeichert, man muß also irgendwie erstmal den MP3 Head auslesen, die Frames abzählen und dann hat man ja den theoretischen Anfang des Tags, nicht? Nun ja, ich kennen den V2.3 Header nicht, aber ich denke das Nullsoft nichts eigenes auf die Beine gestellt hat.

Momentan hocke ich auf der Arbeit, aber ich werde mir das Problem mal heute abend selber genauer angucken. Eventuell hast du nur die Frames nicht korrekt abgezählt und den Pointer dadurch falsch gesetzt. Who knows?
 
Hi!

Ich glaube du hast da was vertauscht. Der ID3v1 wird in den letzten 128 Byte der Datei untergebracht. Durch die feste Grösse ist der super einfach auszulesen.

ID3v2 steht am Anfang der Datei und hat eine Variable grösse und man muss sich von einem zum nächsten hangeln.

Erstell doch einfach mal ne MP3 mit ID3v2 tag und öffne sie im editor.
Bei mir ist dabei folgendes rausgekommen:

Code:
ID3    +TENC   @  encoded by -id3v2WXXX       url-id3v2TCOP      copyright-id3v2TOPE      orig artist-id3v2TCOM      composer-id3v2TCON      (123)A CappellaTRCK      255COMM      eng comment-id3v2TYER      2001TALB      album-id3v2TPE1   
   artist-id3v2TIT2      Titel-id3v2
Gut der Inhalt des Tags ist nicht gerade der beste aber zur unterscheidung von ID3v1 und ID3v2 reichts :).
Wenn ich folgendes analysiere
Code:
TALB      album-id3v2
komm ich zu dem Schluss:
Code:
TALB//vier Byte für die Frame ID
   //vier Byte für die Size
  //zweiByte für die Flags
 //das Fragwürdige Byte 
album-id3v2//der Inhalt, den ich eigentlich anzeigen möchte.

Die berechnete Grösse gibt mir auch den gesamten Inhalt an, weiß halt nur wie gesagt nicht wieso da das erste Byte leer bleibt:(


Gruß Michael
 
Abend!
Wer suchet der findet :)
Bei den Erklärungen zu den einzelnen Frame ID's stehts.
Das ominöse Byte ist zum encoden. Damit hat es dann wohl seine Daseinsberechtigung auch wenn mir noch schleierhaft ist was es genau damit auf sich hat.

Schönen Abend
Michael
 
Zurück