Sun*_*Kim 5 android video-recording android-5.0-lollipop android-camera2
我正在尝试在 Camera2(android.hardware.camera2) API 上以 60(或更高)fps 的速率录制视频。
最后,我使用CameraConstrainedHighSpeedCaptureSession以 120fps 的速度成功录制。但它仅针对 >=120fps 的用例而不是 60fps。
即使我尝试使用普通捕获会话(CameraCaptureSession)以 60fps 进行录制,它也仅支持 <=30fps。我可以通过下面的代码弄清楚。
Range<Integer>[] fpsRanges = characteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES);
Run Code Online (Sandbox Code Playgroud)
我不知道如何使用 Camera2 API 以 60fps 的速度进行录制。
任何想法都会受到欢迎。
谢谢。
您必须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));
Run Code Online (Sandbox Code Playgroud)
之后,使用您的构建器生成 CaptureRequestList:
myHighSpeedRequestList = ((CameraConstrainedHighSpeedCaptureSession) cameraCaptureSession).createHighSpeedRequestList(myPreviewRequestBuilder.build());
Run Code Online (Sandbox Code Playgroud)
并在您的捕获会话中使用它来生成 CaptureSession:
mCaptureSession.setRepeatingBurst(myHighSpeedRequestList,
YourHighSpeedVideoCaptureCallback,
YourBackgroundHandler);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7902 次 |
| 最近记录: |