[FFmpeg-trac] #8795(avformat:new): [Metadata] ID3 Lyrics are added as TXXX custom tags instead of proper USLT tag in MP3, etc.

FFmpeg trac at avcodec.org
Fri Jul 17 11:09:15 EEST 2020


#8795: [Metadata] ID3 Lyrics are added as TXXX custom tags instead of proper USLT
tag in MP3, etc.
-------------------------------------+-------------------------------------
             Reporter:  blueset      |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  avformat     |                  Version:
                                     |  unspecified
             Keywords:  ID3, lyrics  |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 ID3 Lyrics are added as TXXX custom tags instead of proper USLT tag in
 MP3, AIFF (force ID3v2) and other formats.

 How to reproduce:
 {{{
 % # Add lyrics metadata to an MP3 file
 % ffmpeg -i mp3.mp3 -map 0 -y -codec copy -metadata "lyrics=line 1\x0aline
 2\x0aline 3\x0a\x0aline 4\x0aline 5" mp3out.mp3

 ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
   built with Apple clang version 11.0.3 (clang-1103.0.32.62)
   configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.1 --enable-shared
 --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-
 cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl
 --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame
 --enable-libopus --enable-librav1e --enable-librubberband --enable-
 libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora
 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp
 --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid
 --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r
 --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb
 --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr
 --enable-videotoolbox --disable-libjack --disable-indev=jack
   libavutil      56. 51.100 / 56. 51.100
   libavcodec     58. 91.100 / 58. 91.100
   libavformat    58. 45.100 / 58. 45.100
   libavdevice    58. 10.100 / 58. 10.100
   libavfilter     7. 85.100 /  7. 85.100
   libavresample   4.  0.  0 /  4.  0.  0
   libswscale      5.  7.100 /  5.  7.100
   libswresample   3.  7.100 /  3.  7.100
   libpostproc    55.  7.100 / 55.  7.100
 }}}

 Inspect the `mp3out.mp3` file with other ID3 viewers/editors, it is seen
 that tag USLT is added by `ffmpeg` as a TXXX custom frame instead of a
 proper one. A proper USLT frame requires attributes like language and a
 content descriptor. The latter can be an empty string, while the former
 must a 3-letter language code.

 The language tag can be included as part of the input in the format of
 `lyrics-LANGUAGECODE` (e.g. `lyrics-eng`) like what is shown in the
 `ffprobe` output, or can be defaulted to `eng` for English or `und` for
 undetermined.


 ----

 References:

 * [https://id3.org/id3v2.3.0 ID3 Specs]
 * [https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes ISO 639 language
 code list on Wikipedia]

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8795>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list