[Libav-user] warning of "[libmp3lame @ 00CAB020] frame_size is too large" while calling avcodec_encode_audio2()
jettoblack
jettoblack at gmail.com
Thu Sep 27 02:53:20 CEST 2012
zhao0130 wrote
> I am using ffmpeg api to transcode a movie (.mp4 -> .mov). I got a warning
> while calling avcodec_encode_audio2(): "[libmp3lame @ 00CAB020] frame_size
> is too large". I believe this should be due to that the frame size of
> decoding AVCodecContext, 1024, is different from that of encoding
> AVCodecContext, 1152. The audio codec of the mp4 file is AAC and that of
> the mov file is MP3. The default of frame size of MP3 seems 1152 and I can
> not force it to be 1024. I set other parameters such as sample_rate,
> bit_rate, sample_fmt and channels of encoding AVCodecContext same as those
> of decoding AVCodecContext. Help will be really appreciated!
You need to use a FIFO for the audio samples. Each time you get samples
from the decoder, push them into the FIFO. Whenever the FIFO size is at
least the encoder's frame_size, pull one frame's worth of samples out of the
FIFO into the encoder. There is audio FIFO code already built into ffmpeg:
http://ffmpeg.org/doxygen/trunk/group__lavu__audio.html
Some audio codecs like PCM have a frame_size of 0. I use 1024 samples for
those.
--
View this message in context: http://libav-users.943685.n4.nabble.com/Libav-user-warning-of-libmp3lame-00CAB020-frame-size-is-too-large-while-calling-avcodec-encode-audio-tp4655745p4655749.html
Sent from the libav-users mailing list archive at Nabble.com.
More information about the Libav-user
mailing list