Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does ffmpeg error "Prediction is not allowed in AAC-LC" mean?

Tags:

ffmpeg

aac

When decoding AAC files, ffmpeg returns the error

"Prediction is not allowed in AAC-LC". 

Does that mean the file is corrupt? Or that ffmpeg cannot handle AAC-LC files?

I tried with different AAC files and get the errors:

Number of scalefactor bands in group (63) exceeds limit (49).

TNS filter order 25 is greater than maximum 12.

So I guess its not my file that is corrupt but ffmpeg can only handle specific AAC formats? Which would these be?

like image 732
user2212461 Avatar asked Oct 20 '22 06:10

user2212461


1 Answers

These error messages could indicate that the AAC files in question are corrupt, or they could be bugs in FFmpeg. There are different profiles that comprise AAC and AAC-LC (low complexity) is just one profile (and the most basic one to implement). But different profiles implement different features. If an AAC stream claims to be AAC-LC and then contains the long term prediction (LTP) feature, then that's an invalid bitstream.

Same goes for the other errors you encountered. FFmpeg is parsing the stream and finding different pieces which exceed certain thresholds defined by the specification.

It's possible that FFmpeg is doing the wrong thing-- are any other programs (not based on FFmpeg) able to deal with these files correctly? Also, be sure that you have the latest, up to date FFmpeg version.

If you're interested in the specific AAC features that FFmpeg supports, they're listed in the comments at the top of libavcodec/aacdec.c.

like image 96
Multimedia Mike Avatar answered Oct 24 '22 00:10

Multimedia Mike