已經演示瞭如何像CameraPreview一樣feed MediaCodec with Surface input,但在提交到MediaCodec
之前是否有緩衝此輸入的實際方法?對MediaCodec的緩衝表面輸入
以我experiments,銀河的Nexus經歷不可接受的打嗝在使用CameraToMpegTest.java
直接,同步編碼方法當使用MediaCodec
與byte[]
或ByteBuffer
輸入產生音頻/視頻流,我們就可以提交未編碼數據到ExecutorService
或類似的隊列進行處理,以確保不丟幀,即使設備在我們應用程序的控制之外出現CPU使用率峯值。但是,由於執行color format conversion between Android's Camera and MediaCodec的要求,這種方法對於高分辨率的實時視頻是不現實的。
思想:
有沒有辦法養活與
EGL14.eglCopyBuffers(EGLDisplay d, EGLSurface s, NativePixmapType p)
到MediaCodec
創建NativePixmapType
?Android的任何人都可以評論Camera和MediaCodec之間的ByteBuffer格式是否協調路線圖嗎?
那麼,您是否在將幀傳遞給MediaCodec的輸入時找到解決打嗝的方法?在我的情況下,當將MediaCodec提供給MediaMuxer時,我將緩衝MediaCodec的輸出。但是在調用swapBuffers()來提供MediaMuxer的輸入時,我遇到了打嗝。 – Petrakeas