[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