[libav-api] Decoding HE-AAC?

Mathias Hjärtström mathias.hjartstrom at a2b.se
Mon Mar 3 13:12:05 CET 2014


I have a transport stream file containing several services using MPEG1 and
HE-AAC audio. I can play back the file using ffplay, even though I get some
warnings and errors at the command prompt (probably because the TS was
recorded straight from a TV transmission). I use the –vst and –ast
parameters to make sure what PIDs to play.

 

The ffprobe application will report the audio streams as being aac_latm (in
parallel with mp1) and I have configured my own application (that can play
MPEG1, MPEG2 and regular AAC audio just fine, no problem at all) to use the
AV_CODEC_ID_AAC_LATM to decode the HE-AAC streams. I get no errors during
initialization, but I get lots of “frame length mismatch” messages, some
“envelope scalefactor overflow in dequant” messages and sometimes also some
“is not implemented” ones while decoding the frames with
avcodec_decode_audio4(). I use FFmpeg release 2.1.

 

I realize it’s my own fault and probably has something to do with
initialization, but I can’t figure out what it is. Is there for instance
some av_opt_set_int() call or something similar that must be made in order
to play back HE-AAC, as opposed to how everything is initialized when
playing back MPEG1, MPEG2 or AAC audio?

 

Thanks for your help!

 

Best regards,

Mathias



More information about the libav-api mailing list