libfaac:队列输入是向后的

时间:2014-02-28 06:13:49

标签: 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++;
  }
}

但是我收到这个令人讨厌的警告几帧“队列输入时间落后!”

1 个答案:

答案 0 :(得分:2)

答案很简单,你不应该再把同一帧传递给libfaac, 所以即使frame_finished不是1,你仍然应该转到下一帧。

应该如下:

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