在我的Android應用程序中,我使用MediaCodec對webm(vp8)格式的某些媒體進行了編碼。編碼按預期工作。不過,我需要確保我偶爾創建一個同步幀。這是我做的:MediaCodec編碼忽略我的BUFFER_FLAG_SYNC_FRAME標誌
encoder.queueInputBuffer(..., MediaCodec.BUFFER_FLAG_SYNC_FRAME);
稍後在代碼中,我檢查同步幀:
encoder.dequeueOutputBuffer(bufferInfo, 0);
boolean isSyncFrame = (bufferInfo.flags & MediaCodec.BUFFER_FLAG_SYNC_FRAME);
的問題是,isSyncFrame永遠不會獲得真正的價值。
我想知道如果我在編碼配置中犯了一個錯誤。可能有更好的方法來告訴編碼器偶爾創建一個同步幀。
我希望它不是MediaCodec中的錯誤。預先感謝您的幫助。
謝謝你的幫助。問候。 – Peter
「OMX []沒有提供一種方法來指定哪個輸入幀應該被編碼爲同步幀」 - 這是瘋狂的....所以如何生成iframe /關鍵幀來響應RTCP PLI(丟包)? – jesup
@LajosMolnar請幫忙回答這個問題? http://stackoverflow.com/questions/31823231/how-to-update-mediacodec-encoding-bitrate-dynamically-while-streaming-in-android –