如何计算给定分辨率的摄像机的最大支持帧速率

时间:2016-05-23 12:56:03

标签: android android-camera

根据此文档:https://developer.android.com/reference/android/media/MediaRecorder.html#setCaptureRate%28double%29

  

"对于可由摄像机捕获的分辨率,速度最快   可以使用getPreviewFpsRange(int [])"

计算fps

但我找不到任何关于它的例子。

我试图:

    List<Camera.Size> sizes = p.getSupportedPreviewSizes();
    p.setPreviewSize(sizes.get(0).width, sizes.get(0).height);
    cam.setParameters(p);

即。使用所有类型的分辨率设置预览大小,但在此之后调用getPreviewFpsRange(int[])始终返回相同的结果,如Nexus 4上的5000 - 30000或acer平板电脑上的5000 - 60000。这是否意味着这些设备支持所有分辨率的最大fps,或者我错过了什么?

有人知道如何计算每个分辨率的最大fps吗?

1 个答案:

答案 0 :(得分:0)

getSupportedPreviewSizes现在是deprecated along with Camera。但是,in AOSP它只返回了与分辨率无关的固定的帧速率范围列表。有些制造商可能已经覆盖了这种行为,但我从未见过它,并且它与特定预览分辨率的相关性尚未定义。

在至少一台设备上,我获得了30 FPS的预览分辨率1280 x 720和15 FPS的其他一切,包括低分辨率,如320 x 240.我怀疑图形驱动程序针对特定的预览分辨率进行了优化,但是旧的即使驱动程序使其可用,Camera SDK也无法共享此信息。

Camera2界面似乎提供了getHighSpeedVideoFpsRangesFor形式的解决方案,但我自己没有尝试过。