【问题标题】:Android Camera2 video aspect ratioAndroid Camera2 视频长宽比
【发布时间】:2018-05-22 14:25:59
【问题描述】:

我认为以下内容未得到明确回答:
使用 Camera2 API,是否可以在不使用 ffmpeg 等后处理的情况下(例如 1:1)在本机设备分辨率之外进行录制

【问题讨论】:

标签: android aspect-ratio android-camera2


【解决方案1】:

您没有太多详细信息来准确解释您要使用的分辨率,但听起来您想要以与设备的相机。

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

一般来说,这会涉及到:

  1. 设置 EGL 上下文
  2. 在 EGL 中创建渲染目标,并为其获取 Android Surface
  3. 创建 SurfaceTexture 以将纹理数据发送到 EGL
  4. 将 EGL 输入 SurfaceTexture 连接到相机(首先从它创建一个 Surface,如果使用 camera2)
  5. 将 EGL 输出 Surface 连接到 MediaRecorder
  6. 编写着色器代码以处理来自相机的传入帧,根据需要裁剪/缩放/修改,然后将它们渲染到输出表面
  7. 设置相机和媒体记录器,然后同时启动它们
  8. 在 SurfaceTexture onFrameAvailable 中,触发您的渲染代码。

这是一个相当多的脚手架,但完成后应该相当有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 2020-04-06
    相关资源
    最近更新 更多