Audio libfaac:队列输入在时间上是向后的

Audio libfaac:队列输入在时间上是向后的,audio,ffmpeg,libav,transcoding,libfaac,Audio,Ffmpeg,Libav,Transcoding,Libfaac,我正在使用libav和libfaac将音频编码到aac中。 逻辑如下: frames[n] i = 0 ; while (there are frames) { cur_frame = frames[i]; av_encode_audio(frame, ...., &frame_finished); if( frame_finished ) { i++; } } 但是我在几帧中收到了这个恼人的警告“队列输入在时间上是向后的!”答案很简单,您不应该再次将

我正在使用libav和libfaac将音频编码到aac中。 逻辑如下:

frames[n]
i = 0 ;
while (there are frames)
{ 
  cur_frame =  frames[i];
  av_encode_audio(frame, ...., &frame_finished);
  if( frame_finished )
  {
     i++;
  }
}

但是我在几帧中收到了这个恼人的警告“队列输入在时间上是向后的!”

答案很简单,您不应该再次将同一帧传递给libfaac, 因此,即使帧_finished不是1,也应该转到下一帧

其内容应如下:

frames[n]
i = 0 ;
while (there are frames)
{ 
  cur_frame =  frames[i];
  av_encode_audio(frame, ...., &frame_finished);
  i++;
}