LGV30 中的图像稳定问题

Image Stabilization Issue in LGV30

在预览模式下开始录制时视频突然放大帧是已知行为,但我目前面临的问题是使用 LGV30 时预览中的极端跳跃。

  1. 在像素 1 XL 和像素 2 XL 中,跳跃可以忽略不计
  2. 在三星 S8+ 中可以看到跳跃,但可以考虑最终更流畅的视频
  3. 但是在LGV30里跳的很厉害,视频跑到预览的最右上角,最后输出的视频质量比VGA还差。

我知道图像稳定取决于传感器方向、陀螺仪和加速度计的组合,视频中的跳动取决于这些传感器的质量,但是有什么方法可以控制 LGV30 中的跳动或者是它的硬件有缺陷。

我写下我的配置代码以供参考

mPreviewBuilder.set(CaptureRequest.COLOR_CORRECTION_MODE, CaptureRequest.COLOR_CORRECTION_MODE_FAST);
mPreviewBuilder.set(CaptureRequest.CONTROL_CAPTURE_INTENT, CaptureRequest.CONTROL_CAPTURE_INTENT_VIDEO_RECORD);
mPreviewBuilder.set(CaptureRequest.HOT_PIXEL_MODE, CaptureRequest.HOT_PIXEL_MODE_FAST);
mPreviewBuilder.set(CaptureRequest.EDGE_MODE, CaptureRequest.EDGE_MODE_FAST);
mPreviewBuilder.set(CaptureRequest.NOISE_REDUCTION_MODE, CaptureRequest.NOISE_REDUCTION_MODE_FAST);
mPreviewBuilder.set(CaptureRequest.TONEMAP_MODE, CaptureRequest.TONEMAP_MODE_FAST);
mPreviewBuilder.set(CaptureRequest.SHADING_MODE, CaptureRequest.SHADING_MODE_FAST);
mPreviewBuilder.set(CaptureRequest.CONTROL_VIDEO_STABILIZATION_MODE, CaptureRequest.CONTROL_VIDEO_STABILIZATION_MODE_ON);

我假设这个跳动是无法控制的,请问有什么办法可以减少跳动吗?

解决方法原来是摄像头不对

听起来微不足道,但在这段代码中

CameraManager manager = (CameraManager) mContext.getSystemService(Context.CAMERA_SERVICE);
manager.getCameraIdList()

管理员returns 给定设备的所有可访问摄像头。 LGV30因为有2个后置摄像头,一个普通的,一个广角的,我是接广角的。

广角相机无法处理图像稳定,导致了这个问题。所以解决方案是从列表中为给定的相机朝向选择第一个相机。这仍然是一种解决方法,因为我无法弄清楚 API 来检查给定的相机是正常的还是解决方法。

上述问题的详细信息在 How to check whether given Camera is regular camera or wide angle camera?