好的我已閱讀實現Android MediaMux的Fadden's example。我不知道如何讓我的場景進入MP4複合編解碼器的表面輸入。我正在研究音頻處理器,它消耗了音頻和視頻I/O,因此MediaRecord失敗,但MediaMux聽起來像是一個可行的解決方案。Android MediaMuxer將曲面附加到編解碼器輸入
從編解碼器創建inputSurface:
videoInputSurface = codec.createInputSurface();
我已經有一個實現openGLSurfaceView。我可以簡單地通過調用:
myGLSurface = myGLView.getHolder().getSurface();
但這不會設置曲面。它只是抓住它。有沒有一種簡單的方法讓myGLSurface寫入videoInputSurface。
要的東西我有一個cameraPreview被添加到同一個ViewGroup中進一步複雜化,VG,myGLView寫到:
vg.addView(mCameraPreview);
,並且使得OpenGL場景的重疊ontop的的cameraPreview的myGLView設置爲透明。
myGLView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
是否有一種簡單的方法可以獲得vg的表面元素?要簡單地將編碼器的videoInputSurface上的vg幀寫入什麼內容?
感謝,
要清楚的是:你想從相機取幀,用OpenGL在它們上面繪製,然後將結果發送給視頻編碼器?這是否也需要在屏幕上顯示? (這可能有助於按照你想要做的事情重新提出問題,而不是描述你目前已經實現的內容。) – fadden
是的,這是正確的,從相機取幀,通過OpenGL繪製頂部,併發送到視頻編碼器...顯然需要預覽或顯示。我可以寫出我正在嘗試做的事情,但我相信這會讓它變得更糟,所以堅持基礎知識。 – HPP