如何使用 android camera2 api 以固定曝光时间录制 60 fps 视频

How to use android camera2 api to record 60 fps video with fixed exposure time

我想实现一个应用程序以固定曝光时间记录 60 fps。作为设备,我有 Google 像素。由于它的原生相机应用程序可以达到 60 fps 并且它具有硬件级别 LEVEL_3,我认为这不会成为问题,但我无法让它工作。使用 getSupportedPreviewFpsRange()(来自相机 api)我得到范围 [15, 15], [24, 24], [7, 30], [30, 30],使用 getHighSpeedVideoFpsRangesFor(来自相机 2 api)我得到范围 [30, 120], [120, 120], [30, 240], [240, 240], [240, 240]。当我将 [60, 60] 设置为 CONTROL_AE_TARGET_FPS_RANGE 时,出现错误 "Fps range [60, 60] in the request is not a supported high speed fps range"。

自定义应用甚至可以录制 60 fps 视频吗?

如果不是,120 fps 是怎么回事? (我有 120 fps 的记录工作,但是当我关闭 CONTROL_AE_MODE 并手动设置 SENSOR_EXPOSURE_TIMESENSOR_SENSITIVITY 时,帧速率再次降低到 30 fps)

Pixel 上的 60fps 录制可以在正常的捕捉设置中完成 - 看看 CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,只需创建一个正常的捕捉会话。你必须小心,不要设置太高的输出分辨率,因为如果我没记错的话,60fps 不能在 1080p 以上完成。

您可以通过 StreamConfigurationMap 确认您打算使用 sizes/formats。