问题标签 [camera2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
18490 浏览

java - Android Camera2 API YUV_420_888 转 JPEG

我正在使用OnImageAvailableListener获取预览帧:

每次数据长度不同,但图像宽度和高度相同。
主要问题:data.length对于 3264x2448 这样的分辨率来说太小了。
数据数组的大小应该是 3264*2448=7,990,272,而不是 300,000 - 600,000。
怎么了?


0 投票
1 回答
2331 浏览

android - 如何让 CameraDevice 在 camera2 中工作?

我一直在关注 camera2 文档,尝试使用 ImageReader 实现非预览相机,但是当我到达时cameraDevice.createCaptureSession(outputs, mccsStateCallback, cameraHandler);,该cameraDevice对象为空,即使我确定它应该已在CameraCaptureSession.StateCallback事件侦听器中分配(这不是t 被触发是因为 CameraCaptureSession 本身为空)。要么我完全错了,要么我错过了一些大事。这是我的代码:

编辑:我已经设法让 CameraDevice 通过cameraManager.openCamera(cameraId,mStateCallback,cameraHandler);cameraDevice.createCaptureSession(outputs, mccsStateCallback, cameraHandler);. initialiseCamera()现在我遇到了一个问题,即相机输出没有被定向到 ImageReader 的表面,并且我在控制台中收到错误消息E/Surface: getSlotFromBufferLocked: unknown buffer: 0xa1ae7000

0 投票
1 回答
3844 浏览

java - 在android中录制视频时如何在视频上绘图,并保存视频和绘图?

我正在尝试开发一个应用程序,允许我在录制视频时绘制视频,然后将录制文件和视频保存在一个 mp4 文件中以供以后使用。另外,我想使用 camera2 库,尤其是我需要我的应用程序在高于 API 21 的设备上运行,而且我总是避免使用已弃用的库。

我尝试了很多方法来做到这一点,包括 FFmpeg,我在其中放置了 TextureView.getBitmap()(来自相机)的叠加层和从画布上获取的位图。它有效,但由于它是一个慢速功能,视频无法捕捉到足够的帧(甚至 25 fps),而且运行速度非常快。我也希望包含音频。

我考虑了 MediaProjection 库,但我不确定它是否可以仅在其 VirtualDisplay 内捕获包含相机和绘图的布局,因为应用程序用户也可以在视频上添加文本,而我不想要键盘出现。

请帮忙,这是一个星期的研究,我发现没有什么对我有用。

PS:如果在用户按下“停止录制”按钮之后包含一点处理时间,我没有问题。

编辑:

现在在 Eddy 的回答之后,我正在使用 shadercam 应用程序在相机表面上绘图,因为该应用程序会进行视频渲染,而要做的解决方法是将我的画布渲染为位图,然后渲染为 GL 纹理,但是我无法成功地做到这一点。我需要你们的帮助,我需要完成应用程序:S

我正在使用 shadercam 库(https://github.com/googlecreativelab/shadercam),并用以下代码替换了“ExampleRenderer”文件:

请帮助大家,已经一个月了,我仍然坚持使用同一个应用程序:(并且对opengl一无所知。两周后,我正在尝试将这个项目用于我的应用程序,并且视频上没有呈现任何内容。

提前致谢!

0 投票
1 回答
1140 浏览

android - 自动曝光实现

我正在使用 android Camera2 API 进行自定义 AE 实现。当前的想法是将图像的平均亮度保持在某个灰度级(例如 128)。所以算法可以这样描述:

这个迭代算法是有效的。但如果与内置相比,它看起来相当缓慢和笨拙。我在 Internet 和 android 源代码中搜索了有关 Camera2 API 中的 3A 例程的信息,但找不到特定的内容。一些演示文稿提到了 3A 库。我想知道,它是否对所有 android 设备都是开源和标准的?或者我可以从哪里获得有关移动设备中自动曝光实施的信息?

0 投票
2 回答
1852 浏览

android - Android 5.x 快门速度

我正在尝试获得支持的快门速度参数,但我现在确定如何获得这些范围。

对于 ISO 值

String supportedIsoValues = camParams.get("iso-values"); //支持的值,逗号分隔 String System.out.println("supportedIsoValues: " + supportedIsoValues);

但我不知道如何获得支持的快门速度。如何获得支持的快门速度?

0 投票
1 回答
2110 浏览

android - 使用camera2 android在预览中绘制自动对焦矩形

我正在使用Camera2Android的api。我能够捕获图像并保存它。我正在使用autofocus模式来聚焦和捕捉图像。

captureBuilder 在哪里

我想在相机预览的自动对焦区域中显示一个矩形或圆形,因为它发生在默认相机应用程序中。例如,此处预览中间的矩形。

在此处输入图像描述

我已经看到了这一点,但我不想在预览中的任何地方触摸任何东西。

我搜索了很多示例,但其中大多数都说明了不推荐使用的类的使用,对apiCamera没什么用处。Camera2如何使用新的相机 API 来实现这个焦点矩形?

0 投票
1 回答
177 浏览

android - Nexus 5x 预览中的帧变为 Camera2

我尝试在 Android 中预览的当前帧上做一些 ImageProcessing。对于其他所有智能手机,它的效果都很好。但现在,我必须让 Nexus 5x 可以访问该应用程序。

在那里,我从预览中获得了 180 度旋转的图像。我该如何解决?这是我设置相机和预览的代码:

预习:

如您所见,我尝试使用该修复程序来捕获图像,但它并没有帮助我仍然从预览中获得转换后的图像。

如果可能的话,我想要一个尝试更改相机设置的解决方案。通过绑定的 ImageReader 获得图像后,我不想自己转动图像。

0 投票
1 回答
936 浏览

android - 使用 Android Camera2 API 在后台捕获视频

我想修改Camera2Video-Example的代码。

当我通过按主页按钮离开应用程序时,它应该继续在后台捕获视频,直到我返回应用程序并手动停止服务。

任何想法如何实现这一点?

0 投票
2 回答
1477 浏览

parameters - HAL3中的Camera2 api设置参数

我是相机的 Android 新手。我有一个关于如何将供应商标签参数设置为hal3使用camera2 api的问题,因为过去我使用camera API 1(HAL1)将参数设置为HAL。

有什么方法可以使用 Camera2 API 将自定义标签的值设置为 HAL3?谢谢!

0 投票
0 回答
491 浏览

android - Android在游戏中时光倒流开始时只设置一次camera2焦点

我想制作一个简单的应用程序来捕捉延时摄影。最后我做到了。但我想知道是否可以在第一张照片上只锁定一次焦点?然后使用保存的关于焦点的值(如果可能的话)?一般来说,这是一个好主意吗?我认为每隔几秒钟打电话lockFocus()太贵了。当设备固定放置时,一动不动。

其实我有类似谷歌示例代码的代码。我正在将CaptureRequest.Builder字段设置CONTROL_AF_TRIGGERCONTROL_AF_TRIGGER_START并且CaptureCallback我正在检查CaptureResult.CONTROL_AF_STATE,如果ok然后捕获最终照片。也许进入第一张照片,LENS_FOCUS_DISTANCE然后以某种方式设置此值。

PS:此外,我没有向用户显示预览,整个相机逻辑正在服务和其他线程中运行。我也实施ImageReader了等等。

我的代码是: