1. 程式人生 > >MediaCodec 編碼H264 編碼一幀後dequeueOutputBuffer為-1的問題

MediaCodec 編碼H264 編碼一幀後dequeueOutputBuffer為-1的問題

在用android MediaCodec編碼h264的時候,會遇到,dequeueOutputBuffer在成功獲取到config幀(sps pps)及第一個I幀後,dequeueOutputBuffer然後結果一直為-1的情況,

在我用的三星note3及小米3都是這樣的,解決方案如下:

關鍵在下面這個函式的第四個引數上,就是時間戳,這個引數一定要填寫,可以類似的這麼簡單的算一下:

long timepts = 1000000*count / 20;

mediaCodec.queueInputBuffer(inputBufferIndex, 0, input.length, timepts, 0);

然後就解決了~

dequeueOutputBuffer 結果正常了,可以繼續編碼了~