问题标签 [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.
java - Android Camera2 API YUV_420_888 转 JPEG
我正在使用OnImageAvailableListener获取预览帧:
每次数据长度不同,但图像宽度和高度相同。
主要问题:data.length
对于 3264x2448 这样的分辨率来说太小了。
数据数组的大小应该是 3264*2448=7,990,272,而不是 300,000 - 600,000。
怎么了?
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
。
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一无所知。两周后,我正在尝试将这个项目用于我的应用程序,并且视频上没有呈现任何内容。
提前致谢!
android - 自动曝光实现
我正在使用 android Camera2 API 进行自定义 AE 实现。当前的想法是将图像的平均亮度保持在某个灰度级(例如 128)。所以算法可以这样描述:
这个迭代算法是有效的。但如果与内置相比,它看起来相当缓慢和笨拙。我在 Internet 和 android 源代码中搜索了有关 Camera2 API 中的 3A 例程的信息,但找不到特定的内容。一些演示文稿提到了 3A 库。我想知道,它是否对所有 android 设备都是开源和标准的?或者我可以从哪里获得有关移动设备中自动曝光实施的信息?
android - Android 5.x 快门速度
我正在尝试获得支持的快门速度参数,但我现在确定如何获得这些范围。
对于 ISO 值
String supportedIsoValues = camParams.get("iso-values"); //支持的值,逗号分隔 String System.out.println("supportedIsoValues: " + supportedIsoValues);
但我不知道如何获得支持的快门速度。如何获得支持的快门速度?
android - 使用camera2 android在预览中绘制自动对焦矩形
我正在使用Camera2
Android的api。我能够捕获图像并保存它。我正在使用autofocus
模式来聚焦和捕捉图像。
captureBuilder 在哪里
我想在相机预览的自动对焦区域中显示一个矩形或圆形,因为它发生在默认相机应用程序中。例如,此处预览中间的矩形。
我已经看到了这一点,但我不想在预览中的任何地方触摸任何东西。
我搜索了很多示例,但其中大多数都说明了不推荐使用的类的使用,对apiCamera
没什么用处。Camera2
如何使用新的相机 API 来实现这个焦点矩形?
android - Nexus 5x 预览中的帧变为 Camera2
我尝试在 Android 中预览的当前帧上做一些 ImageProcessing。对于其他所有智能手机,它的效果都很好。但现在,我必须让 Nexus 5x 可以访问该应用程序。
在那里,我从预览中获得了 180 度旋转的图像。我该如何解决?这是我设置相机和预览的代码:
预习:
如您所见,我尝试使用该修复程序来捕获图像,但它并没有帮助我仍然从预览中获得转换后的图像。
如果可能的话,我想要一个尝试更改相机设置的解决方案。通过绑定的 ImageReader 获得图像后,我不想自己转动图像。
parameters - HAL3中的Camera2 api设置参数
我是相机的 Android 新手。我有一个关于如何将供应商标签参数设置为hal3
使用camera2 api的问题,因为过去我使用camera API 1(HAL1)将参数设置为HAL。
有什么方法可以使用 Camera2 API 将自定义标签的值设置为 HAL3?谢谢!
android - Android在游戏中时光倒流开始时只设置一次camera2焦点
我想制作一个简单的应用程序来捕捉延时摄影。最后我做到了。但我想知道是否可以在第一张照片上只锁定一次焦点?然后使用保存的关于焦点的值(如果可能的话)?一般来说,这是一个好主意吗?我认为每隔几秒钟打电话lockFocus()
太贵了。当设备固定放置时,一动不动。
其实我有类似谷歌示例代码的代码。我正在将CaptureRequest.Builder
字段设置CONTROL_AF_TRIGGER
为CONTROL_AF_TRIGGER_START
并且CaptureCallback
我正在检查CaptureResult.CONTROL_AF_STATE
,如果ok
然后捕获最终照片。也许进入第一张照片,LENS_FOCUS_DISTANCE
然后以某种方式设置此值。
PS:此外,我没有向用户显示预览,整个相机逻辑正在服务和其他线程中运行。我也实施ImageReader
了等等。
我的代码是: