3

Camera2(android.hardware.camera2)APIで60(またはそれ以上)のfpsレートでビデオを記録しようとしています。Camera2(Androidバージョン21)APIを使用して60fpsビデオを記録する

最後に、CameraConstrainedHighSpeedCaptureSessionを使用して120fpsで記録に成功しました。しかし、60fpsではなく、120fps以上のユースケースしか対象としていません。

通常のキャプチャセッション(CameraCaptureSession)を使用して60fpsで記録しようとしても、< = 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)のドキュメントでは、60fpsではなく120fpsを目標としています。 60fpsで動作確認しましたか? –

関連する問題