2017-04-26 644 views
0

我想实现一个应用程序以固定曝光时间录制60 fps。作为设备,我有Google Pixel。由于它的原生相机应用程序可以达到60 fps,并且它具有硬件级别LEVEL_3,我认为这不会是一个问题,但我无法得到它的工作。与getSupportedPreviewFpsRange()(从相机api)我得到范围[15, 15], [24, 24], [7, 30], [30, 30]getHighSpeedVideoFpsRangesFor(来自camera2 api)我得到范围[30, 120], [120, 120], [30, 240], [240, 240], [240, 240]。当我将[60, 60]设置为CONTROL_AE_TARGET_FPS_RANGE时,出现错误“请求中的Fps范围[60,60]不是支持的高速fps范围”。如何使用android camera2 api录制固定曝光时间的60 fps视频

定制应用程序甚至可以记录60 fps视频吗?

如果不是,它是如何120帧/秒? (我有120帧记录的工作,但是,当我设置CONTROL_AE_MODE关闭,手动设置SENSOR_EXPOSURE_TIMESENSOR_SENSITIVITY,帧速率再次降低到每秒30帧)

回答

2

60fps的记录上的像素可以在正常捕捉设置来完成 - 取看看CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,然后创建一个正常的捕获会话。您必须小心谨慎,不要将分辨率设置得太高,因为如果我没有记错,60fps无法在1080p以上完成。

您可以通过StreamConfigurationMap确认您打算使用的尺寸/格式。

+0

thx艾迪,我已经成功实现了60 fps的视频录制,甚至通过YUV捕捉(分辨率为1920x1080)。这对YUV来说是一个惊喜,因为我已经检查了YUV_420_88最小尺寸(4048x3036)和最小尺寸(160x120)的最小帧持续时间,它们是33333333 ns。但对于尺寸(1920x1080),它确实是16666666纳秒。 但是,当我使用CONTROL_AE_MODE和CONTROL_MODE设置手动设置曝光时间和ios值时,帧频再次下降到30 fps: 我做错了什么?或仅适用于自动曝光60fps? – Jian

+0

您是否设置了帧持续时间(https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.html#SENSOR_FRAME_DURATION)?这是第三次手动控制;你需要自己设置为60fps。默认值可能是1/30秒,而不是1/60秒。 –

+0

是的我已经设置了'SENSOR_FRAME_DURATION'到16666666,这是我从'getOutputMinFrameDuration(ImageFormat.YUV_420_888,new Size(1920,1080))'得到的确切值。我做了你在这里描述的步骤[stackoverflow.com/questions/28293078/how-to-control-iso-manually-in-camera2-android](http://stackoverflow.com/questions/28293078/how-在预览会话和捕捉会话中,他们都下降到30帧/秒。 – Jian

相关问题