
Mp3 id3 tag Part 2

ID3v1

The MPEG Layer I, Layer II, and Layer III (MP3) audio format does not have a native way of preserving content information, except for some simple yes/no parameters like “private”, “copyrighted” and “family”. original” (meaning this is the original document and not a copy). A solution to this problem was presented in 1996 by Eric Kemp. By adding a small piece of extra data to the end of the file, you can make MP3 files contain information about the audio, not just the audio itself.
The location of the tag, as the data calls it, may be because it has little chance of interfering with the decoder. To facilitate detection, a fixed size of 128 bytes was chosen. The label has the following layout (shown in the schematic on the right):
Field Length Content
ID3v1 tag 3 TAG
Title 30 Song Name
Artist 30 Artist
Album 30 Album name
Year 4 Year
Comment 30 Comment
Genre 1 Song genre identifier
ID3v2
tages the complete tag described in this document.
tagInclude tag header, tag body(1 or n frame), optional padding.
The bit order in ID3v2 is Most Significant Bit First (MSB).
Byte order in multibyte numbers is most significant byte first (for example, 0x12345678 would be encoded as 0x12 34 56 78), also known as big-endian storage.
ID3v2.3.0
label header
ID3v2 header
Field Length Content
ID3v2/file identifier 3 ID3
version ID3v2 2 03 00 (hexadecimal)
ID3v2 flags 1 abc00000 (binary)
ID3v2 size 4 4 * 0xxxxxxx (binary)
1,ID3v2/file identifier
The first three bytes are always ID3, indicating that it is an ID3v2 tag, followed by two version bytes.
2,ID3v2 version
ID3v2 version
The first byte is your major version, while the second byte is your revision number. In this case, it is ID3v2.3.0. All revisions are backward compatible, while major versions are not. If software compatible with ID3v2.2.0 and lower encounters version 3 or higher, it should simply ignore the entire tag. Versions and revisions are never 0xFF.
3.ID3v2 flags
ID3v2 version Followed by one ID3v2 flags, currently only 3 flags are used:
unsynchronization
ID3v2 flags The seventh bit in a- indicates whether unsynchronization is used.
extended header
ID3v2 flags The sixth bit in b- indicates header if there are extended header followers.
Experimental indicator
ID3v2 flags
The fifth bit in c- should be used as an “experimental flag”.
All other flags must be cleared. If one of these undefined flags is set, it may mean that a parser that doesn’t know about the function can’t read the function.





