From Hydrogenaudio Knowledgebase
Jump to: navigation, search
Example ID3v2 Tag, image copyright © Martin Nilsson

ID3v2 is a tagging format for MP3 files, designed to provide a much greater deal of functionality and flexibility over its predecessor, ID3v1. ID3v2 allows for a much greater amount of metadata to be embedded within MP3 files over ID3v1, allowing each frame (metadata field) to contain practically any conceivable type of information, including title, album, performer, lyrics, equalizer presets, album art and other images, and much, much more.

One of the design goals of ID3v2 was flexibility and extensibility. To acheive this, the ID3v2 format was modelled as a container format, allowing the creation of new frames within ID3v2 tags without worrying whether they will break other programs, as all ID3v2 parsers will simply ignore any frames they don't recognize. Each frame can be as large as 16MB, and the entire tag can be as large as 256MB, so there are practically no space constraints when writing ID3v2 tags.

Also, ID3v2 supports Unicode as standard, allowing metadata to be created in any language.

ID3v2 tags are generally added to the beginning of MP3 files, allowing audio players to display tag metadata before the end of the file is read (useful for streaming MP3 files). However, as of ID3v2.4, they can be appended to the end as well, meaning that a change in length in any ID3 frame will not necessarily provoke a rewrite of the entire file.

ID3v2-tagged files are also generally safe to be played on players that weren't designed to support them. They are sync-safe, allowing MPEG audio decoders to determine the tags contain no audio data and can be safely skipped.

Even though ID3v2 is designed to support a lot of space-heavy features, such as inline pictures and file inclusion, ironically, ID3v2 still tries to use bytes as efficiently as possible, and allows for compression of each frame. If you convert an ID3v1 tag to an ID3v2 tag, it is likely that the ID3v2 tag will be smaller. If you convert an ID3v1 tag with full fields (that is, all 30 bytes are used in every field) to an ID3v2 tag, it will be 56 bytes larger. Note that this is the worst case scenario with regards to tag size for ID3v1 to ID3v2 conversion.

See also

External links