簡體   English   中英

Android視頻幀處理

[英]Android video frame processing

我正在開發對相機幀進行一些實時圖像處理的應用程序。 為此,我使用預覽回調的方法onPreviewFrame
這適用於支持分辨率至少為 640x480 或更大的預覽幀的相機。 但是當相機不支持這么大的相機預覽分辨率時,應用程序被編程為拒絕處理此類幀。 現在,我Sony Xperia的問題是像Sony Xperia Go 這樣的手機。 這是一款非常不錯的設備,可以錄制分辨率高達 1280x720 的視頻,但不幸的是,相機預覽的最大尺寸為 480x320,這對於我的需求來說太小了。

我想知道的是如何獲得這些larger camera frames (高達1280x720或更大)? 顯然它必須是可能的,因為相機應用程序能夠以該分辨率錄制視頻 - 因此該應用程序必須能夠以某種方式訪問​​那些較大的幀。 如何從我的應用程序中做同樣的事情?

應用程序必須支持 Android 2.1 及更高版本,但即使我找到僅適用於 Android 4.0 或更高版本的問題的解決方案,我也會很高興。

這個問題類似於http://stackoverflow.com/questions/8839109/processing-android-video-frame-by-frame-while-recording ,但我不需要保存視頻 - 我只需要那些高分辨率視頻幀...

似乎您唯一能做的就是從 MediaRecoder 數據解碼幀。 您可以使用 ffmpeg 來解碼來自 LocalSocket 的記錄器數據。

希望以下開源項目可以提供幫助:

ipcamera-for-android: https://code.google.com/p/ipcamera-for-android/

spydroid-ipcamera: https : //code.google.com/p/spydroid-ipcamera/

您可能應該看看OpenCV庫。 它具有允許您接收完整幀的方法。

我有一個印象:視頻預覽尺寸小,而且慢,比設置的視頻錄制幀率慢。

我曾經試圖尋找解決方案。 似乎更好的方法是從錄像機中獲取視頻流,然后直接處理來自視頻流的數據。

您可以在 Android ip-camera 上找到一些示例。

你可以使用這個庫:

https://github.com/natario1/CameraView

該庫具有addFrameProcessor偵聽器,該偵聽器在process函數中具有Frame參數。

如果你需要同時幀處理錄制視頻,您需要從使用takeVideoSnapshot的功能CameraView takeVideo停止幀處理,直到在我測試的最新版本 2.6.4 中完成視頻錄制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM