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的工作吗? –

相关问题