Ticket #2269 (open enhancement)

Opened 4 months ago

Last modified 4 months ago

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

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

Change History

Changed 4 months ago by feelart

mp3 test file with Tags in different source language

Changed 4 months ago by feelart

aac test file with tags in different source language

comment:1 Changed 4 months ago by richardpl

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

comment:2 Changed 4 months 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, no tag is copied

Second bug type, is when the source is aac, then
when the output is mp3, it fails to properly copy Russian chars
when the output is aac, no tag is copied at all!

Even this produce no tag

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

Version 0, edited 4 months ago by feelart (next)

comment:3 Changed 4 months ago by richardpl

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

comment:4 Changed 4 months ago by feelart

There are intimely linked

comment:5 Changed 4 months ago by richardpl

Unfortunately not at all.

comment:6 Changed 4 months ago by feelart

Then should I close this one and open 2?

comment:7 Changed 4 months ago by richardpl

Nope, leave this one open.

comment:8 Changed 4 months ago by feelart

Can you reproduce it?

comment:9 Changed 4 months ago by cehoyos

  • Status changed from new to open
  • Reproduced by developer set
  • Component changed from undetermined to avformat
  • 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
  • Priority changed from normal to wish
  • Version changed from unspecified to git-master
  • Keywords aac added
  • Type changed from defect to enhancement
$ 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
Note: See TracTickets for help on using tickets.