Opened 10 years ago

Closed 10 years ago

#3205 closed defect (fixed)

ffmpeg detects pcm audio as aac with score 1

Reported by: Katie Holly 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 Carl Eugen Hoyos 10 years ago.
patchaacdec.diff (508 bytes ) - added by Carl Eugen Hoyos 10 years ago.

Download all attachments as: .zip

Change History (7)

comment:1 by Katie Holly, 10 years ago

Ah, and expected output of both commands:

pipe:0: Invalid data found when processing input

comment:2 by Carl Eugen Hoyos, 10 years ago

Component: undeterminedavformat
Keywords: aac added
Version: unspecifiedgit-master

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

comment:3 by Katie Holly, 10 years ago

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.

by Carl Eugen Hoyos, 10 years ago

Attachment: test added

by Carl Eugen Hoyos, 10 years ago

Attachment: patchaacdec.diff added

comment:4 by Carl Eugen Hoyos, 10 years ago

Status: newopen
Summary: ffmpeg detects input as aac when processing corrupted pcm_s24le and pcm_s32le inputffmpeg 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 by Carl Eugen Hoyos, 10 years ago

Resolution: fixed
Status: openclosed

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

Note: See TracTickets for help on using tickets.