3

我試圖在Camera2(android.hardware.camera2)API上以60(或更多)fps速率錄製視頻。使用Camera2錄製60fps視頻(在Android版本21上)API

最後,我成功使用CameraConstrainedHighSpeedCaptureSession以120fps記錄。但它只針對> = 120fps的使用情況,而不是60fps。

即使我試圖使用正常捕捉會話以60fps記錄(CameraCaptureSession),它只支持< = 30fps。我可以通過下面的代碼找出它。

Range<Integer>[] fpsRanges = characteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES); 

我不知道如何使用Camera2 API以60fps記錄。

任何想法將是最受歡迎的。

謝謝。

回答

1

您必須從CameraDevice創建一個ConstrainedHighSpeedCaptureSession,然後像使用普通捕獲會話那樣實例化新會話。

還需要接下來的值設置爲您生成器:

myPreviewRequestBuilder.set(CaptureRequest.CONTROL_MODE, CaptureRequest.CONTROL_MODE_USE_SCENE_MODE); 
myPreviewRequestBuilder.set(CaptureRequest.CONTROL_SCENE_MODE, CaptureRequest.CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO); 
myPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, new Range<Integer>(frameRate, frameRate)); 

後,生成帶有構建一個CaptureRequestList:

myHighSpeedRequestList = ((CameraConstrainedHighSpeedCaptureSession) cameraCaptureSession).createHighSpeedRequestList(myPreviewRequestBuilder.build()); 

,並用它在您的捕獲會話生成CaptureSession :

mCaptureSession.setRepeatingBurst(myHighSpeedRequestList, 
            YourHighSpeedVideoCaptureCallback, 
            YourBackgroundHandler); 

希望它能幫助你!

+0

這不是用於> = 120 fps視頻拍攝嗎? – goudarziha

+0

我修改CONTROL_AE_TARGET_FPS_RANGE以獲取我想要使用的範圍 –

+0

謝謝@FranciscoDurdinGarcia。但正如我已經提到的,[CameraConstrainedHighSpeedCaptureSession]的文檔(https://developer.android.com/reference/android/hardware/camera2/CameraConstrainedHighSpeedCaptureSession.html)表示它的目標是120fps以上,而不是60fps。你檢查了60fps的工作嗎? –

相關問題