2

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++;
  }
}

しかし、いくつかのフレームでこの迷惑な警告が表示されます。

4

1 に答える 1

2

答えは非常に簡単です。同じフレームを libfaac に再度渡すことは想定されていないため、frame_finished が 1 でなくても、次のフレームに進む必要があります。

次のようになります。

frames[n]
i = 0 ;
while (there are frames)
{ 
  cur_frame =  frames[i];
  av_encode_audio(frame, ...., &frame_finished);
  i++;
}
于 2014-02-28T06:18:26.610 に答える