關於Android端相機應用涉及到的技術

目前AI視覺以及短視頻相關的應用都和相機有關,涉及到相機的調用,Surface渲染,視頻錄製等功能,這裏做了一個Demo項目,基本包含了Android相機應用涉及的所有技術。

https://github.com/dingjikerbo/Android-Camera

Android Camera Demos


一、相機預覽

序號 項目名稱 內容簡介
1 GLSurfacePreview 拿到相機幀數據,直接繪製到屏幕
2 GLSurfacePreview2 拿到相機幀數據,先繪製到FBO,離線處理後(變紅)繪製到屏幕
3 GLSurfacePreview3 直接給相機的預覽紋理繪製到屏幕
4 SurfacePreview 拿到相機幀數據,直接繪製到屏幕
5 SurfacePreview2 拿到相機幀數據,先繪製到PBuffer,再繪製到屏幕
6 MultiSurfacePreview 拿到相機幀數據,先轉成紋理,再分別繪製到兩個SurfaceView

二、RGB轉換

利用GPU將相機幀(NV21)轉成RGB並傳至CPU,分辨率爲1920 * 1080,RGBA

另開一個線程做RGB轉換,不然如果和相機共用上下文,渲染時需要來回切換,且可能阻塞相機渲染,對性能不利。

序號 模塊名稱 內容簡介
1 RgbConverter1 直接readPixels,~30ms
2 RgbConverter2 從Pbuffer調readPixels,性能有較大提升,~30ms
3 RgbConverter3 從FBO調readPixels,性能比PBuffer稍好一點,~27ms
4 RgbConverter4 從FBO讀到PBO,readPixels阻塞, glMapBuffer阻塞,~11ms
5 RgbConverter5 從Pbuffer讀到PBO,readPixels異步, glMapBuffer阻塞,~6ms

三,視頻錄製

序號 項目名稱 內容簡介
1 recorder1 錄製相機預覽以及音頻
2 recorder2 錄製紋理以及音頻

有問題或建議可以給我郵件

Email: [email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章