Opened 6 years ago

Closed 5 years ago

#3205 closed defect (fixed)

ffmpeg detects pcm audio as aac with score 1

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

Description

While trying to test some raw audio formats for under-the-hood processing in my scripts, i came across this "issue":

How to reproduce with pcm_s24le acodec:

% ffmpeg -i inputfile -t 30 -acodec pcm_s24le -f wav - > test.wav
ffmpeg version N-58613-g26b526e Copyright (c) 2000-2013 the FFmpeg developers
  built on Nov 30 2013 01:24:40 with gcc 4.8 (SUSE Linux)
  configuration: --enable-gpl --enable-libx264 --enable-libmp3lame --enable-nonfree --enable-libaacplus --enable-x11grab
  libavutil      52. 55.100 / 52. 55.100
  libavcodec     55. 44.100 / 55. 44.100
  libavformat    55. 21.102 / 55. 21.102
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     3. 91.100 /  3. 91.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mp3, from 'inputfile':
  Duration: 01:07:01.94, start: 0.000000, bitrate: 192 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 192 kb/s
Output #0, wav, to 'pipe:':
  Metadata:
    ISFT            : Lavf55.21.102
    Stream #0:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s32, 2116 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (mp3 -> pcm_s24le)
Press [q] to stop, [?] for help
size=    7749kB time=00:00:30.01 bitrate=2115.1kbits/s    
video:0kB audio:7749kB subtitle:0 global headers:0kB muxing overhead 0.001285%

tail -c +8144 test.wav | ffmpeg -i pipe:0 -y test.mp3
ffmpeg version N-58613-g26b526e Copyright (c) 2000-2013 the FFmpeg developers
  built on Nov 30 2013 01:24:40 with gcc 4.8 (SUSE Linux)
  configuration: --enable-gpl --enable-libx264 --enable-libmp3lame --enable-nonfree --enable-libaacplus --enable-x11grab
  libavutil      52. 55.100 / 52. 55.100
  libavcodec     55. 44.100 / 55. 44.100
  libavformat    55. 21.102 / 55. 21.102
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     3. 91.100 /  3. 91.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
[aac @ 0x185c900] Format aac detected only with low score of 1, misdetection possible!
[aac @ 0x185d2c0] get_buffer() failed
[aac @ 0x185d2c0] Reserved bit set.
[aac @ 0x185d2c0] invalid band type
[aac @ 0x185d2c0] More than one AAC RDB per ADTS frame is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[aac @ 0x185d2c0] Input buffer exhausted before END element found
[aac @ 0x185d2c0] Number of bands (3) exceeds limit (2).
[aac @ 0x185d2c0] Number of bands (46) exceeds limit (37).
[aac @ 0x185d2c0] Reserved bit set.
[aac @ 0x185d2c0] channel element 2.10 is not allocated
[aac @ 0x185d2c0] Reserved bit set.
    Last message repeated 1 times
etc. (continued on https://ezcrypt.it/P97n#cOHJwrl0Qve2Sx7KCVFJy0wX )

How to reproduce with pcm_s32le acodec:

ffmpeg -i inputfile -t 30 -acodec pcm_s32le -f wav - > test.wav
ffmpeg version N-58613-g26b526e Copyright (c) 2000-2013 the FFmpeg developers
  built on Nov 30 2013 01:24:40 with gcc 4.8 (SUSE Linux)
  configuration: --enable-gpl --enable-libx264 --enable-libmp3lame --enable-nonfree --enable-libaacplus --enable-x11grab
  libavutil      52. 55.100 / 52. 55.100
  libavcodec     55. 44.100 / 55. 44.100
  libavformat    55. 21.102 / 55. 21.102
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     3. 91.100 /  3. 91.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mp3, from 'inputfile':
  Duration: 01:07:01.94, start: 0.000000, bitrate: 192 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 192 kb/s
Output #0, wav, to 'pipe:':
  Metadata:
    ISFT            : Lavf55.21.102
    Stream #0:0: Audio: pcm_s32le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s32, 2822 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (mp3 -> pcm_s32le)
Press [q] to stop, [?] for help
size=   10332kB time=00:00:30.01 bitrate=2820.1kbits/s    
video:0kB audio:10332kB subtitle:0 global headers:0kB muxing overhead 0.000964%

tail -c +8144 test.wav | ffmpeg -i pipe:0 -y test.mp3
ffmpeg version N-58613-g26b526e Copyright (c) 2000-2013 the FFmpeg developers
  built on Nov 30 2013 01:24:40 with gcc 4.8 (SUSE Linux)
  configuration: --enable-gpl --enable-libx264 --enable-libmp3lame --enable-nonfree --enable-libaacplus --enable-x11grab
  libavutil      52. 55.100 / 52. 55.100
  libavcodec     55. 44.100 / 55. 44.100
  libavformat    55. 21.102 / 55. 21.102
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     3. 91.100 /  3. 91.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
[aac @ 0x31f7900] Format aac detected only with low score of 1, misdetection possible!
[aac @ 0x31f82c0] get_buffer() failed
    Last message repeated 2344 times
[aac @ 0x31f7900] Stream #0: not enough frames to estimate rate; consider increasing probesize
[aac @ 0x31f7900] decoding for stream 0 failed
[aac @ 0x31f7900] Could not find codec parameters for stream 0 (Audio: aac, 0 channels, fltp, 342 kb/s): unspecified sample rate
Consider increasing the value for the 'analyzeduration' and 'probesize' options
pipe:0: could not find codec parameters

Attachments (2)

test (1.3 MB) - added by cehoyos 6 years ago.
patchaacdec.diff (508 bytes) - added by cehoyos 6 years ago.

Download all attachments as: .zip

Change History (7)

comment:1 Changed 6 years ago by Fusl

Ah, and expected output of both commands:

pipe:0: Invalid data found when processing input

comment:2 Changed 6 years ago by cehoyos

  • Component changed from undetermined to avformat
  • Keywords aac added
  • Version changed from unspecified to git-master

I am not convinced that there is a bug but please provide a sample.

comment:3 Changed 6 years ago by Fusl

Sorry for the double attachment, i thought the sample file isn't going to be saved because of it's size of 7.6 MiB.

Changed 6 years ago by cehoyos

Changed 6 years ago by cehoyos

comment:4 Changed 6 years ago by cehoyos

  • Status changed from new to open
  • Summary changed from ffmpeg detects input as aac when processing corrupted pcm_s24le and pcm_s32le input to ffmpeg detects pcm audio as aac with score 1

I deleted the attachments that are imo not ideal to reproduce the issue (although it made sense that you explained how they were created) and attached both a sample and a possible patch.

$ ffmpeg -i test
ffmpeg version N-58868-ge2f800f Copyright (c) 2000-2013 the FFmpeg developers
  built on Dec  7 2013 21:45:51 with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl
  libavutil      52. 56.100 / 52. 56.100
  libavcodec     55. 45.100 / 55. 45.100
  libavformat    55. 22.100 / 55. 22.100
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     3. 92.100 /  3. 92.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
[aac @ 0x2d18100] Format aac detected only with low score of 1, misdetection possible!
...

comment:5 Changed 5 years ago by cehoyos

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

Fixed by Martin Storsjö since 6dd007ad - thank you for the report!

Note: See TracTickets for help on using tickets.