Android Camera2视频宽高比

时间:2018-05-22 14:26:00

标签: android aspect-ratio android-camera2

我不相信以下内容已被明确回答:
使用Camera2 API,是否可以在本机设备分辨率(例如,1:1)之外进行录制,而无需使用ffmpeg 等后处理?

1 个答案:

答案 0 :(得分:0)

您没有太多详细信息可以准确解释您想要使用的分辨率,但是您想要以与所支持的宽高比/分辨率之一不匹配的宽高比/分辨率进行录制。设备的相机。

您可以随时将图像数据发送到GPU,在那里进行任何裁剪/缩放,然后将其发送到视频编码器。

一般来说,这涉及:

  1. 设置EGL上下文
  2. 在EGL中创建渲染目标,并为其获取Android Surface
  3. 创建SurfaceTexture以将纹理数据发送到EGL
  4. 将EGL输入SurfaceTexture连接到相机(首先通过它创建一个Surface,如果使用camera2)
  5. 将EGL输出Surface连接到MediaRecorder
  6. 编写着色器代码以处理来自摄像机的传入帧,根据需要裁剪/缩放/修改,然后将它们渲染到输出表面
  7. 设置相机和录音机,然后启动它们
  8. 在SurfaceTexture onFrameAvailable中,触发渲染代码。
  9. 这是构建的相当多的脚手架,但在完成时应该相当有效。