如何在 Android 相机 API 上指定视口

How to Specify a Viewport on Android Camera API

1) 相机预览分辨率为 1920 x 1080

2) 我以 960 x 540 录制

3) 我希望能够指定应将 1920 x 1080 预览的哪一部分保存到视频中并即时更改。

实际上,这将使我能够对相机进行数字缩放和​​数字摇摄。 APIs,代码示例可以帮到我吗?

我查看了 Camera2 API 和样本。看起来你只能为设备设置一个视口,而不是每个输出。

您必须自己实现此缩放;相机 API 在其所有输出上产生相同的视野,而不管每个输出的分辨率如何(尽管它确实以不同方式裁剪不同的纵横比,以避免拉伸)。 camera2 SCALER_CROP_REGION(用于数字变焦)将 zoom/pan 所有输出均等。

执行此操作的最简单方法可能是将 1080p 输出发送到 GPU,然后从 GPU 以完整的 FOV 渲染到屏幕,然后仅将图像区域渲染到媒体记录器想记录。 这不是非常简单,因为您需要编写相当多的 OpenGL 代码才能完成此操作。