添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Camera2 API 三星Galaxy S9+不支持高于240的FPS范围?

1 人关注

我一直在写一个应用程序,使用Camera2 API来捕捉慢动作镜头。我知道三星Galaxy S9+可以录制高达960帧的慢动作,对于这个特定的项目,我需要录制480帧。

我遇到的问题是,map.getHighSpeedVideoFpsRangesFor()在使用720p或1080p时返回的最大范围是[240, 240],如果我试图手动给CaptureRequest.Builder一个[480, 480]的范围,我得到这个异常。

IllegalArgumentException while invoking public abstract void android.hardware.camera2.CameraCaptureSession$StateCallback.onConfigured(android.hardware.camera2.CameraCaptureSession)
                 java.lang.IllegalArgumentException: Fps range [480, 480] in the request is not a supported high speed fps range [[120, 120], [240, 240], [60, 120], [30, 120], [60, 240], [30, 240]]
                     at android.hardware.camera2.utils.SurfaceUtils.checkConstrainedHighSpeedSurfaces(SurfaceUtils.java:151)
                     at android.hardware.camera2.impl.CameraConstrainedHighSpeedCaptureSessionImpl.createHighSpeedRequestList(CameraConstrainedHighSpeedCaptureSessionImpl.java:83)
                     at ch.package.app.RecordActivity.updatePreview(RecordActivity.java:655)
                     at ch.package.app.RecordActivity.access$700(RecordActivity.java:74)
                     at ch.package.app.RecordActivity$3.onConfigured(RecordActivity.java:257)
                     at android.hardware.camera2.impl.CameraConstrainedHighSpeedCaptureSessionImpl$WrapperCallback.onConfigured(CameraConstrainedHighSpeedCaptureSessionImpl.java:398)
                     at java.lang.reflect.Method.invoke(Native Method)
                     at android.hardware.camera2.dispatch.InvokeDispatcher.dispatch(InvokeDispatcher.java:39)
                     at android.hardware.camera2.dispatch.HandlerDispatcher$1.run(HandlerDispatcher.java:65)
                     at android.os.Handler.handleCallback(Handler.java:789)
                     at android.os.Handler.dispatchMessage(Handler.java:98)
                     at android.os.Looper.loop(Looper.java:164)
                     at android.os.HandlerThread.run(HandlerThread.java:65)

在这个设备上通过API记录480FPS是不可能的吗?我可以采取其他方法吗?或者我做错了什么?

java
android
android-camera2
galaxy
slowmotion
Joao  Ventura
Joao Ventura
发布于 2018-10-11
2 个回答
DatPX
DatPX
发布于 2021-08-06
0 人赞同

我认为这是不可能的,尽管三星Galaxy S9+可以录制高达960帧的慢动作。 只有系统应用程序可以做到这一点,而不是第三方应用程序。

kfir
kfir
发布于 2021-08-06
0 人赞同

Galaxy S9可以做到[120, 120]。也许还有[240,240]。 你必须使用录制模板来达到稳定的帧率。如果是黑暗的环境--FPS会下降。

mCameraDevice2.createCaptureRequest(CameraDevice.TEMPLATE_RECORD)

It cannot reach more then that. even S20 & S21 can hardly support 240, trust me - I have tried. You can check my channel for screen recording examples. For example: https://youtu.be/ioCqSn1Qdqs