What Does ID3 Stand For?
ID3 stands for “Identify an MP3”. It is an informal standard, not an ISO one: Eric Kemp created ID3v1 in 1996, and ID3v2 followed in 1998. MP3 players, car stereos, phones and DJ software read it, and podcast apps use ID3v2 for episode titles, artwork and chapters.
What Are ID3 Tags?
ID3 tags are metadata containers embedded directly inside MP3 files. They store everything your music player needs to display track information without relying on file names or external databases.
A typical ID3 tag contains:
- Title — the song or track name
- Artist — the performing artist or band
- Album — the album or release name
- Year — release year
- Genre — music genre classification
- Track number — position within the album
- Album art — embedded cover image (usually JPEG or PNG)
- Lyrics — synchronized or unsynchronized song lyrics
- BPM — beats per minute for DJ software
- Composer, conductor, disc number — extended fields for classical and multi-disc releases
Without tags, your library becomes a pile of unnamed files. A file called track03.mp3 could be anything — ID3 tags are what tell your player it is "Bohemian Rhapsody" by Queen from "A Night at the Opera."
ID3v1 vs ID3v2
There are two major versions of the ID3 standard, and they are fundamentally different in design:
ID3v1 (1996)
The original tagging format. It appends a fixed 128-byte block to the end of the MP3 file. Its limitations are severe:
- 30 characters max for title, artist, and album fields
- 80 predefined genres (later extended to 148) — no custom genres
- No album art, no lyrics, no Unicode
- ID3v1.1 (1998) added a track number field by repurposing 2 bytes from the comment field
ID3v2 (1998–2000)
A complete redesign stored at the beginning of the MP3 file. ID3v2 uses a flexible frame-based structure with virtually no size limits:
- Unlimited text length for all fields
- Embedded artwork — JPEG, PNG, or other image formats
- Synchronized lyrics with timestamps
- Custom frames — store any metadata you want
- Unicode support — proper international characters
| Feature | ID3v1 | ID3v2.3 | ID3v2.4 |
|---|---|---|---|
| Text length | 30 chars | Unlimited | Unlimited |
| Album art | No | Yes | Yes |
| Unicode | No (Latin-1) | UCS-2 / UTF-16 | UTF-8 native |
| Genres | 80 predefined | Free text | Free text |
| Lyrics | No | Yes (synced) | Yes (synced) |
| Compatibility | Universal | Very wide | Good (not all players) |
Recommendation: use ID3v2.3 for maximum compatibility. It supports everything most users need — artwork, Unicode (via UTF-16), long text fields, and lyrics. ID3v2.4 adds native UTF-8 and improved footer support, but some older players and car head units cannot read it.
What Happens to Tags During Conversion?
FLAC does not use ID3 tags. Instead, it stores metadata as Vorbis Comments — a simpler key-value system also used by Ogg Vorbis and Opus. Cover art in FLAC is stored in a dedicated METADATA_BLOCK_PICTURE field. Solid tag support is one reason FLAC tops our guide to the best lossless format for music archiving.
When converting FLAC to MP3, the converter must map Vorbis Comments to ID3v2 frames. Fortunately, this mapping is straightforward:
| FLAC (Vorbis Comment) | MP3 (ID3v2 Frame) | Notes |
|---|---|---|
TITLE |
TIT2 |
Direct mapping |
ARTIST |
TPE1 |
Direct mapping |
ALBUM |
TALB |
Direct mapping |
DATE |
TDRC / TYER |
TDRC for v2.4, TYER for v2.3 |
TRACKNUMBER |
TRCK |
Direct mapping |
GENRE |
TCON |
Free text in both |
METADATA_BLOCK_PICTURE |
APIC |
Cover art, JPEG or PNG |
LYRICS |
USLT |
Unsynchronized lyrics; some tools write a TXXX frame instead |
FFmpeg copies the global tags of the input to the output by default; -map_metadata 0 makes that explicit and -map_metadata -1 strips them. Cover art is different: FFmpeg reads a FLAC picture block as a separate image stream, and it becomes an ID3v2 APIC frame only if that stream is kept in the output.
Our converter copies the text tags (title, artist, album, track number, genre, date) from FLAC to MP3 automatically and writes them as ID3v2.4. It drops embedded cover art, because it keeps only the audio stream. Add the cover back with a tag editor such as Mp3tag or MusicBrainz Picard.
Common Tag Problems and Fixes
When metadata does not survive conversion, there is usually a specific, fixable cause:
Tags lost entirely
The converter stripped the tags, for example with -map_metadata -1, or copied metadata from the wrong input. FFmpeg copies global tags by default, so a plain conversion keeps them. This is the most common cause of "empty tags" after conversion.
Album artwork missing
Several possible causes:
- Artwork not embedded — some FLAC files rely on a separate
folder.jpgin the same directory rather than embedding the cover. External artwork is not part of the FLAC file and cannot transfer during conversion. - Artwork too large — some players struggle with embedded images over 500 KB. If your FLAC has a 5 MB PNG cover, consider resizing to a 500–800 pixel JPEG before or after conversion. Our free image resizer can shrink a large cover to that size before you embed it.
- Converter limitation — many converters keep only the audio stream. Ours does too, so re-add the cover with a tag editor after conversion.
Garbled characters (mojibake)
Character encoding mismatch. Vorbis Comments in FLAC are always UTF-8. But if the MP3 is written with ID3v2.3 using Latin-1 encoding, non-ASCII characters (Cyrillic, CJK, accented Latin) may display incorrectly. The fix: use -id3v2_version 3 with UTF-16 encoding, or use -id3v2_version 4 which supports UTF-8 natively.
ID3 version incompatibility
Some older car stereos and portable players only read ID3v1 or ID3v2.3. If your tags appear empty on a specific device, the converter may have written ID3v2.4 tags that the device cannot parse. The solution: use -id3v2_version 3 to force the widely compatible ID3v2.3 format.
Best Practices for Music Library Conversion
When converting a large FLAC library to MP3, follow these practices to keep your metadata intact and consistent:
- Always use
-map_metadata 0— this single flag ensures all recognized tags transfer from source to output - Use
-id3v2_version 3— ID3v2.3 is the most compatible version across players, devices, and car stereos - Keep artwork under 500 KB — resize covers to 500–800 pixels and compress as JPEG. Large PNG covers waste space and can cause issues on mobile devices
- Verify with
ffprobe— after converting a test file, runffprobe output.mp3to confirm all expected tags are present - Check a few files in your target player — the ultimate test is whether tags display correctly on the device you actually use
Batch tip: when converting an entire library, convert one album first and verify everything looks correct in your music player before processing the rest. Catching a metadata issue early saves hours of re-conversion.
The complete FFmpeg command
For reference, here is the command that combines best-practice audio encoding with full metadata preservation:
ffmpeg -i input.flac -map_metadata 0 -id3v2_version 3 \
-codec:a libmp3lame -q:a 0 output.mp3
This copies all metadata, writes ID3v2.3 tags, and encodes at VBR V0 (~245 kbps) quality. For CBR 320 kbps, replace -q:a 0 with -b:a 320k. To decide between VBR V0 and CBR 320, see our FLAC to MP3 bitrate guide.
How to Edit ID3 Tags
Windows File Explorer
Right-click the MP3, choose Properties, open the Details tab and click a value to edit it. Good for a few files; it cannot add cover art.
Apple Music app (Mac) or iTunes
Select the song and press Cmd+I (Ctrl+I in iTunes for Windows) to open its info window, then edit the fields and the artwork.
Mp3tag and MusicBrainz Picard
Mp3tag (Windows and macOS) edits many files at once and can add cover art. MusicBrainz Picard (Windows, macOS, Linux) identifies tracks and fills tags from the MusicBrainz database.
FFmpeg
Change a tag without re-encoding: ffmpeg -i input.mp3 -c copy -metadata title="New Title" -id3v2_version 3 output.mp3