我正在尝试在 Camera2(android.hardware.camera2) API 上以 60(或更高)fps 的速率录制视频。
最后,我使用 CameraConstrainedHighSpeedCaptureSession 以 120fps 的速度成功录制.但它仅针对 >=120fps 用例,不适用于 60fps。
即使我尝试使用普通捕获 session (CameraCaptureSession) 以 60fps 进行录制,它也只支持 <=30fps。我可以通过下面的这段代码弄明白。
Range<Integer>[] fpsRanges = characteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES);
我不知道如何使用 Camera2 API 以 60fps 的速度进行录制。
欢迎提出任何想法。
谢谢。
最佳答案
您必须从 CameraDevice 创建一个 ConstrainedHighSpeedCaptureSession
并实例化一个新 session ,就像您可能对普通捕获 session 所做的那样。
您还需要为您的构建器设置下一个值:
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());
并在您的捕获 session 中使用它来生成 CaptureSession:
mCaptureSession.setRepeatingBurst(myHighSpeedRequestList,
YourHighSpeedVideoCaptureCallback,
YourBackgroundHandler);
关于android - 使用 Camera2(在 Android 版本 21 上)API 录制 60fps 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37985383/