我試圖用實時低延遲與Android6.0的MediaCodec將h264編碼到流中。 大約有6幀從編碼器,其我想知道如何降低如何減少MediaCodec H264編碼器等待時間
部分代碼是等待時間:
while (true) {
encoder->dequeueOutputBuffer(&bufIndex);
}
編碼器通過絲網的表面在小320x480 60饋送fps,並通過dequeueOutputBuffer()輸出流數據。 大約有6幀數據不能通過dequeueOutputBuffer()立即返回給編碼器。換句話說,當第N幀被輸入時,第(N-6)幀的編碼器輸出數據被輸入。
問題1 - 如何減少在編碼器中緩衝的幀?在第N幀送入編碼器後,是否可以輸出第N幀?
PS:問題1與this question相同(沒有很好的解決方案)。
當表面圖形內容突然變爲靜態時,沒有更多的幀送入編碼器。奇怪的是,最新的6幀數據無法以「普通速度」輸出,它們在大約10秒內緩慢輸出。
問題2如何在突然沒有數據輸入到編碼器時減少最新幀輸出的延遲?