scr*_*rpn 10 camera android frame-rate camera2
有一些官方支持高fps录音的手机,如Galaxy S5和S6.我试过这两个,你可以用默认的相机应用程序录制高fps视频(60甚至120 fps).(或者在S6上使用Gear VR的"直通相机"功能.)但是:当您通过标准Android API查询相机的功能时(在4.4和5.0上的S5以及5.1上的S6上尝试过它,尝试了旧的和新的所有情况下,30 fps被报告为最高可用率.这是否意味着这些手机使用私有专有API来访问高fps功能,而且没有标准方法可以访问更高的fps?这是制造商的缺点(可能会随着未来的软件版本或手机而改变)或者我只是遗漏了什么?我甚至不需要慢动作,只需高帧率相机即可实时使用,所以60 fps就足够了.
我尝试在旧相机API中查询相机fps的示例;
List<Camera.Size> a = camera.getParameters().getSupportedPreviewSizes();
List<int[]> b = camera.getParameters().getSupportedPreviewFpsRange();
int[] c = new int[2];
camera.getParameters().getPreviewFpsRange(c);
Run Code Online (Sandbox Code Playgroud)
在camera2 API中相同:
CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String[] cameras = manager.getCameraIdList();
for(String camera : cameras) {
CameraCharacteristics cc = manager.getCameraCharacteristics(camera);
Range<Integer>[] fpsRange = cc.get(cc.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES);
}
Run Code Online (Sandbox Code Playgroud)
我只得到范围:[15,15],[24,24],[10,30],[15,30],[30,30](使用旧相机API的范围更小).
在camera2 API中,我找到了一些访问高fps摄像头录制的方法:createConstrainedHighSpeedCaptureSession().但它将高速视频录制定义为"帧速率> = 120fps",因此我甚至不需要60 fps.无论如何,我查询了这个功能,但似乎S6不支持它.我试过的代码:
CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String[] cameras = manager.getCameraIdList();
for(String camera : cameras) {
CameraCharacteristics cc = manager.getCameraCharacteristics(camera);
CameraCharacteristics.Key<int[]> aa = cc.REQUEST_AVAILABLE_CAPABILITIES;
for (int i = 0; i < cc.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES).length; i++) {
Log.e(TAG, "Capability: " + cc.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES)[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
它说它只支持0,1,2,3,5,6的能力.REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO将是9.
在这一点上,如果怀疑这些功能的想法真的无法通过这些手机上的标准API提供,那么我已经差不多用完了.任何帮助表示赞赏.
我知道这个问题与此非常相似/相关:使用新的Camera API捕获高fps视频 但我的问题更为笼统,不是旧的或新的相机API或特定设备都没有.我也很好奇支持fps的其他新旗舰设备通过标准API报告,因为我只能在3台设备上测试它.
经过与三星开发人员支持的多次讨论后,我可以向您保证以下内容:
三星从未正式支持 60 FPS。它肯定可以在 S9、S10、S20(常规)上使用,但在 S20 和 S21 Snapdragon/美国版本上有一个错误 - 它在 Exynos/全球版本上仍然像魅力一样工作 - 如果需要,我可以从这两个版本进行屏幕录制。我已将此事报告给三星并等待答复。
您可以使用高速捕捉,但它仅设计用于 120 FPS 或 240 FPS。目前,他们的 S21 系列和 S20 Plus 和 Ultra Snapdragon/美国版本声明并批准 120/240 可用 - 但它不起作用。Exynos/全球版本一切正常。
如果您问自己 - 为什么高速返回范围也是 [30:120] 和 [60:120] - 这些范围是为预览模式设计的,如果您将其用于录制 - 您可以获得 30 的 FPS直到 120 - 取决于您获得的光量。例如:在一次录制中您将获得 90 FPS,而在另一次录制中您将获得 120 FPS。如果您使用 [120:120],您只能保证稳定的 120 FPS,而如果您使用高速会话,则不会获得 [60:60] 或 [90:90] - 只有 120 或 240。
您可以在我的 Facebook 页面上关注我与他们的所有讨论: https: //www.facebook.com/Background-video-recorder-Ultimate-121145775953677 欢迎您分享我的帖子或联系他们的支持和投诉。
| 归档时间: |
|
| 查看次数: |
14837 次 |
| 最近记录: |