为高速视频会话获取最佳视频预览大小
Get the optimal video preview size for a high-speed video session
此问题针对的是高速视频会话,而不是普通视频会话。
目前在 Android Camera2 API 中,为了确定最佳预览尺寸,我使用目标视频输出尺寸作为参考,并使用尺寸选择列表从中计算出最佳预览尺寸返回者:
// SurfaceTexture.class to get the preview sizes supported by the surface
StreamConfigurationMap.getOutputSizes(SurfaceTexture.class);
视频输出大小是从返回的列表中选择的:
StreamConfigurationMap.getHighSpeedVideoSizes();
预览尺寸计算是通过从SurfaceTexture.class列表中选择尺寸来完成的,与视频输出尺寸具有相同的宽高比,并且在1920x0180尺寸范围内constrain,即camera2要保证的最大预览尺寸API.
综上所述,当使用 createHighSpeedRequestList 时,如果发现传递给会话的任何表面的尺寸不符合支持的高速尺寸,则此方法将失败,这适用也到预览表面。请参阅以下来源:
android.hardware.camera2.utils.SurfaceUtils.checkConstrainedHighSpeedSurfaces
问题是,为高速视频会话获取有效预览尺寸的最佳方式是什么?我不能依赖 SurfaceTexture.class 返回的选项列表,因为这些与高速会话无关。
我最好的猜测是我应该遍历所有这些并只找到一个在 StreamConfigurationMap.getHighSpeedVideoSizes 返回的高速大小列表中的一个,但是想知道有没有更扎实靠谱的方法,或者有好的例子可以参考
您的情况无需调用 StreamConfigurationMap.getOutputSizes(SurfaceTexture.class)。从 StreamConfigurationMap.getHighSpeedVideoSizes() 获得的列表中的任何大小都将满足前一个条件。请注意,如果您选择某些特定的 FPS,则可能不支持后一个列表中的某些尺寸。通常我们更喜欢最大的可用尺寸,但如果您的要求允许较小的尺寸,那就去做吧:这可能会显着减少电池消耗并提高设备响应能力。
此问题针对的是高速视频会话,而不是普通视频会话。
目前在 Android Camera2 API 中,为了确定最佳预览尺寸,我使用目标视频输出尺寸作为参考,并使用尺寸选择列表从中计算出最佳预览尺寸返回者:
// SurfaceTexture.class to get the preview sizes supported by the surface
StreamConfigurationMap.getOutputSizes(SurfaceTexture.class);
视频输出大小是从返回的列表中选择的: StreamConfigurationMap.getHighSpeedVideoSizes();
预览尺寸计算是通过从SurfaceTexture.class列表中选择尺寸来完成的,与视频输出尺寸具有相同的宽高比,并且在1920x0180尺寸范围内constrain,即camera2要保证的最大预览尺寸API.
综上所述,当使用 createHighSpeedRequestList 时,如果发现传递给会话的任何表面的尺寸不符合支持的高速尺寸,则此方法将失败,这适用也到预览表面。请参阅以下来源: android.hardware.camera2.utils.SurfaceUtils.checkConstrainedHighSpeedSurfaces
问题是,为高速视频会话获取有效预览尺寸的最佳方式是什么?我不能依赖 SurfaceTexture.class 返回的选项列表,因为这些与高速会话无关。
我最好的猜测是我应该遍历所有这些并只找到一个在 StreamConfigurationMap.getHighSpeedVideoSizes 返回的高速大小列表中的一个,但是想知道有没有更扎实靠谱的方法,或者有好的例子可以参考
您的情况无需调用 StreamConfigurationMap.getOutputSizes(SurfaceTexture.class)。从 StreamConfigurationMap.getHighSpeedVideoSizes() 获得的列表中的任何大小都将满足前一个条件。请注意,如果您选择某些特定的 FPS,则可能不支持后一个列表中的某些尺寸。通常我们更喜欢最大的可用尺寸,但如果您的要求允许较小的尺寸,那就去做吧:这可能会显着减少电池消耗并提高设备响应能力。