我正在尝试在 Camera2(android.hardware.camera2) API 上以 60(或更高)fps 的速率录制视频。
最后,我使用以下命令成功以 120fps 进行录制相机约束高速捕获会话 https://developer.android.com/reference/android/hardware/camera2/CameraConstrainedHighSpeedCaptureSession.html。但它仅针对 >=120fps 用例,不适用于 60fps。
即使我尝试使用正常捕获会话以 60fps 进行录制(相机捕获会话 https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html),仅支持
Range<Integer>[] fpsRanges = characteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES);
我不知道如何使用 Camera2 API 以 60fps 进行录制。
任何想法都将受到欢迎。
Thanks.
您必须创建一个ConstrainedHighSpeedCaptureSession
从 CameraDevice 并实例化一个新会话,就像您对普通捕获会话所做的那样。
您还需要为您的构建器设置下一个值:
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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)