2
1
Altough FFmpeg states that it has support for ID3v2.4 tags, there is one thing I can't get to work properly. The ID3v2.4 specifications state the following:
There may only be one text information frame of its kind in an tag. All text information frames supports multiple strings, stored as a null separated list, where null is represented by the termination code for the character encoding.
However, when I use FFprobe, it only shows the first value. For example mid3v2 shows the tags correctly. See below for both the outputs.
mid3v2:
mid3v2 --list 01_Infinite_\(Original_Mix\).mp3
IDv2 tag info for 01_Infinite_(Original_Mix).mp3
TALB=Infinite
TBPM=150
TCON=Hardstyle / Test / Example / Hard Dance
TDRC=2017
TIT2=Infinite (Original Mix)
TPE1=B-Front / Second Artist Example
TPE2=B-Front
TPUB=Roughstate
FFmpeg:
ffprobe -hide_banner 01_Infinite_\(Original_Mix\).mp3
Input #0, mp3, from '01_Infinite_(Original_Mix).mp3':
Metadata:
title : Infinite (Original Mix)
artist : B-Front
album : Infinite
date : 2017
genre : Hardstyle
TBPM : 150
album_artist : B-Front
publisher : Roughstate
The TCON (Genre) and TPE1 (Artist) fields have multiple values, seperated by a NULL-character. FFmpeg doesn't show more than one field.
Am I overlooking something, or is this just not implemented in FFmpeg/libavformat?
Thanks in advance!
AFAIK these are ID3v2.3 tags, not ID3v1. ID3v1 is completely different. – Nicola Hinssen – 2018-01-05T21:36:11.673
Possibly, but the MP3 demuxer does not use the v2 parser to dump them. – Gyan – 2018-01-06T05:55:02.017
Strike the above. ffmpeg only dumps id3v2. I'll look into this later. – Gyan – 2018-01-06T08:31:48.007