Galaxy S3のmadiacodecによってWIFIカメラからのh264ライブストリームをデコードしようとしています.ビデオは正常に再生されますが、メディアコードの低レベルは常にビデオフレームの1秒をバッファリングするようです.新しいフレームは新しい着信NALユニットによってのみデコードできます. . これにより、約 1 秒の遅延が発生します。
がMediaCodec.createDecoderByType("video/avc");
呼び出されると、logcat から 22 個のバッファーが割り当てられていることがわかります。
01-04 15:39:02.799: I/ExtendedCodec(13374): Smoothstreaming Enabled
01-04 15:39:02.809: I/ACodec(13374): [OMX.qcom.video.decoder.avc] Now Loaded->Idle
01-04 15:39:02.809: I/ACodec(13374): [OMX.qcom.video.decoder.avc] Allocating 22 buffers from a native window of size 245760 on output port
01-04 15:39:02.889: D/DecodeActivity(13374): Decoder started at --- 1388867942894
01-04 15:39:02.889: I/ACodec(13374): [OMX.qcom.video.decoder.avc] Now Idle->Executing
01-04 15:39:03.019: I/ACodec(13374): [OMX.qcom.video.decoder.avc] Now Executing
また、フレームを出力する前に、約 16 個の NAL ユニットをデコーダーにプッシュする必要があることがわかります。
私の質問は、なぜこのビデオのバッファリングですか? それが問題である場合、私はより少ないバッファを割り当てることを試みることができます。とにかく、このビデオのバッファリングを減らすことができますか?