我正在使用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++;
}
}
但是我收到这个令人讨厌的警告几帧“队列输入时间落后!”
答案 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++;
}