Opened 5 years ago

Closed 4 years ago

#2269 closed enhancement (fixed)

adts muxer does not write metadata

Reported by: feelart Owned by:
Priority: wish Component: avformat
Version: git-master Keywords: aac
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

RE: ffmpeg 1.1 (build 2013-02-09)

2 bugs:
1/ when aac is the output source, source tags are not copied

2/ when aac is input, ouput tags have issues with some non EN chars

Quid is it linked to any aac encoder or just libvo_aacenc

First let's test source is MP3

With:

ffmpeg -i withTagsMp3.mp3 -map_metadata 0 tagTestaacNoTagCopy.aac

no tag are copied, no warning or error

while both are OK:

ffmpeg -i withTagsMp3.mp3 -map_metadata 0 tagTestmp3OK.mp3

ffmpeg -i withTagsMp3.mp3 -map_metadata 0 -id3v2_version 3 tagTestID3v2mp3OK.mp3

Second let's test when source is AAC

ffmpeg -i withTagsAAC.aac -map_metadata 0 aac2mp3RUSSIAN_FAILS.mp3

Here French characters are copied, but Russian fails (note withTagsMp3.mp3 is OK with Russian)
Returns an error:

"[aac @ 000000000222d3e0] channel element 2.0 is not allocated
Error while decoding stream #0:0: Error number -1 occurred"
ffmpeg -i withTagsAAC.aac -map_metadata 0 aac2aacFails.aac

Here no tags are copied at all !

"[aac @ 000000000222d3e0] channel element 2.0 is not allocated
Error while decoding stream #0:0: Error number -1 occurred"

Attachments (2)

withTagsMp3.mp3 (68.9 KB) - added by feelart 5 years ago.
mp3 test file with Tags in different source language
withTagsAAC.aac (67.1 KB) - added by feelart 5 years ago.
aac test file with tags in different source language

Download all attachments as: .zip

Change History (12)

Changed 5 years ago by feelart

mp3 test file with Tags in different source language

Changed 5 years ago by feelart

aac test file with tags in different source language

comment:1 Changed 5 years ago by richardpl

by tags in aac you just mean id3v1 tags - this is fairly trivial to add suppport.

comment:2 Changed 5 years ago by feelart

No, you read too quickly.

There are 2 bugs.
One when the source is for instance mp3 and the output is aac
In that case, none of the tag are copied

Even this produces no tag:

ffmpeg -i withTagsMp3.mp3 -metadata title="does NOT work" aac2mp3ForceTitle.aac

Second bug type, is when the source is aac, then
2.1/ when the output is mp3, it fails to properly copy Russian chars(but OK if it were mp3)
2.2/ when the output is aac, no tag is copied at all!

Last edited 5 years ago by feelart (previous) (diff)

comment:3 Changed 5 years ago by richardpl

But this is ticket for one bug only, so ignore second one.

comment:4 Changed 5 years ago by feelart

There are intimely linked

comment:5 Changed 5 years ago by richardpl

Unfortunately not at all.

comment:6 Changed 5 years ago by feelart

Then should I close this one and open 2?

comment:7 Changed 5 years ago by richardpl

Nope, leave this one open.

comment:8 Changed 5 years ago by feelart

Can you reproduce it?

comment:9 Changed 5 years ago by cehoyos

  • Component changed from undetermined to avformat
  • Keywords aac added
  • Priority changed from normal to wish
  • Reproduced by developer set
  • Status changed from new to open
  • Summary changed from 2 reproducable bugs: Tags are not copied to AAC as output, AAC as input leaves partial copy to mp3 to adts muxer does not write metadata
  • Type changed from defect to enhancement
  • Version changed from unspecified to git-master
$ ffmpeg -i fate-suite/mpegaudio/extra_overread.mp3 -strict -2 out.aac
ffmpeg version N-50068-g2220f13 Copyright (c) 2000-2013 the FFmpeg developers
  built on Feb 18 2013 12:32:48 with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl --disable-indev=jack
  libavutil      52. 17.102 / 52. 17.102
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.100 / 54. 63.100
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 38.103 /  3. 38.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
[mp3 @ 0x16270c0] max_analyze_duration 5000000 reached at 5015510 microseconds
Input #0, mp3, from 'fate-suite/mpegaudio/extra_overread.mp3':
  Metadata:
    track           : 1
    encoded_by      : Fraunhofer IIS MP3 v04.01.02 (fast)
    date            : 2011
    encoder         : Lavf54.1.0
  Duration: 00:00:10.00, start: 0.000000, bitrate: 191 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, mono, s16p, 192 kb/s
Output #0, adts, to 'out.aac':
  Metadata:
    track           : 1
    encoded_by      : Fraunhofer IIS MP3 v04.01.02 (fast)
    date            : 2011
    encoder         : Lavf54.63.100
    Stream #0:0: Audio: aac, 44100 Hz, mono, fltp, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (mp3 -> aac)
Press [q] to stop, [?] for help
size=     148kB time=00:00:10.00 bitrate= 121.0kbits/s
video:0kB audio:145kB subtitle:0 global headers:0kB muxing overhead 2.035478%
$ ffmpeg -i out.aac
ffmpeg version N-50068-g2220f13 Copyright (c) 2000-2013 the FFmpeg developers
  built on Feb 18 2013 12:32:48 with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl --disable-indev=jack
  libavutil      52. 17.102 / 52. 17.102
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.100 / 54. 63.100
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 38.103 /  3. 38.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
[aac @ 0x30d4520] max_analyze_duration 5000000 reached at 5015510 microseconds
[aac @ 0x30d4520] Estimating duration from bitrate, this may be inaccurate
Input #0, aac, from 'out.aac':
  Duration: 00:00:09.93, bitrate: 121 kb/s
    Stream #0:0: Audio: aac, 44100 Hz, mono, fltp, 121 kb/s
At least one output file must be specified

comment:10 Changed 4 years ago by jamal

  • Resolution set to fixed
  • Status changed from open to closed

Should be fixed in commit c994b42830cb6c3152b4d383d7c26affc1a2321b

You can enable ApeTag? metadata with -write_apetag 1

ffmpeg -i withTagsAAC.aac -map_metadata 0 -write_apetag 1 aac2aacFails.aac
Note: See TracTickets for help on using tickets.