Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#2278 closed defect (worksforme)

Regression bug : fails to copy MP3 tag

Reported by: feelart Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description (last modified by cehoyos)

FFmpeg 1.1 (build 17-02-2013) fails to copy MP3 tags
while same CLI with FFMpeg 0.8(23/06/2011) is OK

How to reproduce the bug:
1/ Take MP3 with tags, see for instance my ticket #2269(still open on 18/02/2013, ticket about metatags)
2/ With FFMpeg 0.8 run

ffmpeg -i withTagsMp3.mp3 -acodec copy -map_metadata 0  test.mp3

You'll see that MP3 tags are copied

3/ Run same CLI with FFmpeg 1.1 and no tags are copied

Change History (7)

comment:1 Changed 3 years ago by cehoyos

  • Description modified (diff)
  • Keywords regression added
  • Priority changed from normal to important

Please add the failing command line together with the complete, uncut console output.

comment:2 Changed 3 years ago by feelart

ffmpeg -i withTagsMp3.mp3 -acodec copy -map_metadata 0  test.mp3

With FFmpeg 0.8

C:\PortableApps\MM\Audio\mp3gain-win-1_3_4\bug>ffmpeg -i withTagsMp3.mp3 -acodec copy -map_metadata 0  test.mp3
ffmpeg version 0.8, Copyright (c) 2000-2011 the FFmpeg developers
  built on Jun 23 2011 14:21:12 with gcc 4.5.3
  configuration: --enable-gpl --enable-version3 --enable-memalign-hack --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3la
me --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mp3, from 'withTagsMp3.mp3':
  Metadata:
    album           : test
    artist          : Russian-ðæð▒ðôð│ðöð┤ðûðÂðÖð╣
    encoder         : Lavf54.62.100
    genre           : Blues
    title           : French accent-├á├®├¿├½├¬i├«├»├┤├╣├╗├º
    artiste         : ´╗┐Spanish ├¡├│├▒
  Duration: 00:00:04.23, start: 0.000000, bitrate: 133 kb/s
    Stream #0.0: Audio: mp3, 44100 Hz, mono, s16, 128 kb/s
Output #0, mp3, to 'test.mp3':
  Metadata:
    TALB            : test
    TPE1            : Russian-ðæð▒ðôð│ðöð┤ðûðÂðÖð╣
    artiste         : ´╗┐Spanish ├¡├│├▒
    TCON            : Blues
    TIT2            : French accent-├á├®├¿├½├¬i├«├»├┤├╣├╗├º
    TSSE            : Lavf53.4.0
    Stream #0.0: Audio: libmp3lame, 44100 Hz, mono, 128 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop, [?] for help
size=      67kB time=00:00:04.23 bitrate= 128.9kbits/s
video:0kB audio:66kB global headers:0kB muxing overhead 0.701532%

C:\PortableApps\MM\Audio\mp3gain-win-1_3_4\bug>

Now with FFMpeg 1.1

C:\PortableApps\MM\Audio\mp3gain-win-1_3_4\bug>ffmpeg -i withTagsMp3.mp3 -acodec copy -map_metadata 0  test.mp3
ffmpeg version N-50025-gb8bb661 Copyright (c) 2000-2013 the FFmpeg developers
  built on Feb 17 2013 02:44:12 with gcc 4.7.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-lib
mp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-am
rwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 17.101 / 52. 17.101
  libavcodec     54. 91.103 / 54. 91.103
  libavformat    54. 63.100 / 54. 63.100
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 38.100 /  3. 38.100
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Input #0, mp3, from 'withTagsMp3.mp3':
  Metadata:
    album           : test
    artist          : Russian-ðæð▒ðôð│ðöð┤ðûðÂðÖð╣
    encoder         : Lavf54.62.100
    genre           : Blues
    title           : French accent-├á├®├¿├½├¬i├«├»├┤├╣├╗├º
    artiste         : Spanish íóñ
  Duration: 00:00:04.23, start: 0.000000, bitrate: 133 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, mono, s16p, 128 kb/s
File 'test.mp3' already exists. Overwrite ? [y/N] y
Output #0, mp3, to 'test.mp3':
  Metadata:
    TALB            : test
    TPE1            : Russian-ðæð▒ðôð│ðöð┤ðûðÂðÖð╣
    artiste         : Spanish íóñ
    TCON            : Blues
    TIT2            : French accent-├á├®├¿├½├¬i├«├»├┤├╣├╗├º
    TSSE            : Lavf54.63.100
    Stream #0:0: Audio: mp3, 44100 Hz, mono, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
size=      67kB time=00:00:04.23 bitrate= 129.1kbits/s
video:0kB audio:66kB subtitle:0 global headers:0kB muxing overhead 0.897960%

C:\PortableApps\MM\Audio\mp3gain-win-1_3_4\bug>

comment:3 Changed 3 years ago by feelart

Oups, apparently behaviour changed between ID3v1 and ID3v2

Version 0, edited 3 years ago by feelart (next)

comment:4 Changed 3 years ago by cehoyos

  • Keywords regression removed
  • Priority changed from important to normal
  • Resolution set to worksforme
  • Status changed from new to closed
  • Version changed from unspecified to git-master

Works fine here:

$ ffmpeg -i withTagsMp3.mp3 -acodec copy -map_metadata 0 out.mp3
ffmpeg version N-50025-gb8bb661 Copyright (c) 2000-2013 the FFmpeg developers
  built on Feb 18 2013 13:12:09 with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl --disable-indev=jack
  libavutil      52. 17.101 / 52. 17.101
  libavcodec     54. 91.103 / 54. 91.103
  libavformat    54. 63.100 / 54. 63.100
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 38.100 /  3. 38.100
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Input #0, mp3, from 'withTagsMp3.mp3':
  Metadata:
    album           : test
    artist          : Russian-БбГгДдЖжЙй
    encoder         : Lavf54.62.100
    genre           : Blues
    title           : French accent-àéèëêiîïôùûç
    artiste         : Spanish íóñ
  Duration: 00:00:04.23, start: 0.000000, bitrate: 133 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, mono, s16p, 128 kb/s
Output #0, mp3, to 'out.mp3':
  Metadata:
    TALB            : test
    TPE1            : Russian-БбГгДдЖжЙй
    artiste         : Spanish íóñ
    TCON            : Blues
    TIT2            : French accent-àéèëêiîïôùûç
    TSSE            : Lavf54.63.100
    Stream #0:0: Audio: mp3, 44100 Hz, mono, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
size=      67kB time=00:00:04.23 bitrate= 129.1kbits/s
video:0kB audio:66kB subtitle:0 global headers:0kB muxing overhead 0.897960%
$ ffmpeg -i out.mp3
ffmpeg version N-50025-gb8bb661 Copyright (c) 2000-2013 the FFmpeg developers
  built on Feb 18 2013 13:12:09 with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl --disable-indev=jack
  libavutil      52. 17.101 / 52. 17.101
  libavcodec     54. 91.103 / 54. 91.103
  libavformat    54. 63.100 / 54. 63.100
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 38.100 /  3. 38.100
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Input #0, mp3, from 'out.mp3':
  Metadata:
    album           : test
    artist          : Russian-БбГгДдЖжЙй
    artiste         : Spanish íóñ
    genre           : Blues
    title           : French accent-àéèëêiîïôùûç
    encoder         : Lavf54.63.100
  Duration: 00:00:04.23, start: 0.000000, bitrate: 129 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, mono, s16p, 128 kb/s
At least one output file must be specified

comment:5 Changed 3 years ago by cehoyos

Use "-write_id3v1 1" to (also) write ID3v1 tags.

comment:6 Changed 3 years ago by feelart

Indeed, Tag behaviour change between v0.8 and 1.1 (maybe change manual) as

ffmpeg -i withTagsMp3.mp3 -acodec copy -map_metadata 0 -write_id3v1 1 test.mp3

Works.

Now, I saize the opportunity, what about embedded image tag?
Those CLI do not produced it

ffmpeg -i withTagsMp3.mp3 -i img.jpg -acodec copy -map_metadata 0 -write_id3v1 1 test.mp3
ffmpeg -i withTagsMp3.mp3 -i img.jpg -acodec copy -map_metadata 0 -id3v2_version 3 test.mp3
ffmpeg -i withTagsMp3.mp3 -i img.jpg -acodec copy test.mp3

comment:7 Changed 3 years ago by cehoyos

Please consider reading the fine documentation or send an email to ffmpeg-user, this is not a support forum.

Note: See TracTickets for help on using tickets.