天天看點

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 結果正常了,可以繼續編碼了~