加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Android camera2捕获突发太慢了

发布时间:2020-12-14 05:45:20 所属栏目:Java 来源:网络整理
导读:我正在尝试修改 android-Camera2Basic代码来捕获一连串的图片.但是,在我的Nexus 5上运行L 5.0.1,我无法以超过200-300ms的速度获得图片之间的延迟. 我尝试了一大堆东西,但这是最基本的.这是我修改的Camera2Basic代码的唯一部分.我的预览TextureView只有50x50d
我正在尝试修改 android-Camera2Basic代码来捕获一连串的图片.但是,在我的Nexus 5上运行L 5.0.1,我无法以超过200-300ms的速度获得图片之间的延迟.

我尝试了一大堆东西,但这是最基本的.这是我修改的Camera2Basic代码的唯一部分.我的预览TextureView只有50x50dp,但这不要紧,对吧?

对于什么是值得的,这个代码只有延迟约50-100ms在我的Nexus 6,与L 5.1.

private void captureStillPicture() {
    try {
        List<CaptureRequest> captureList = new ArrayList<CaptureRequest>();
        mPreviewRequestBuilder.addTarget(mImageReader.getSurface());

        for (int i=0;i<10;i++) {
            captureList.add(mPreviewRequestBuilder.build());
        }

        mCaptureSession.stopRepeating();
        mCaptureSession.captureBurst(captureList,cameraCaptureCallback,null);
        mPreviewRequestBuilder.removeTarget(mImageReader.getSurface());
    } catch (CameraAccessException e) {
        e.printStackTrace();
    }
}

CameraCaptureSession.CaptureCallback cameraCaptureCallback = new CameraCaptureSession.CaptureCallback() {
    @Override
    public void onCaptureCompleted(CameraCaptureSession session,CaptureRequest request,TotalCaptureResult result) {
        Log.d("camera","saved");
        mPictureCounter++;
        if (mPictureCounter >= 10)
            unlockFocus();
    }
};

解决方法

您遇到的问题是您请求的图像输出格式的工件. JPEG编码过程在摄像机管道上施加了大的停顿时间,因此在发生编码时,在一次曝光结束和下一次开始之间存在大量停机时间.

引用的30fps速率可以通过将ImageReader上的输出图像格式设置为YUV来实现,因为这是相机的“本机”输出.这将是在捕获图像时存储图像的方式,然后您将需要执行JPEG编码,分离相机的内联处理.

例如,在Nexus 5上,JPEG编码的输出停止时间为243ms,您已经观察.对于YUV_420_888输出,为0ms.同样,由于其大尺寸,RAW_SENSOR编码引入了200ms的停顿时间.

还要注意,即使您通过选择“更快”的格式删除停顿时间障碍物,仍然有最小帧时间,具体取决于输出图像大小.但是对于Nexus 5的全分辨率输出,这是33ms,这是你期待的.

相关信息在相机元数据的StreamConfigurationMap对象here中.查看getOutputStallDuration(int格式,Size大小)和getOutputMinFrameDuration(int格式,Size size)方法进行确认.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读