首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CameraX 1.1 有哪些新特性发布?

CameraX 基于主要使用场景来构建,比如实时预览相机、检索缓冲区以进行分析和拍摄照片,在 CameraX 1.1 版本中还加入了视频拍摄功能。...△ YUV 格式 (图左) 转换至 RGB 格式 (图右) 相机通常以 YUV420 格式生成数据,其中包括明亮度 (Luminance, Y)、色度 (Chroma, U, V) 和一些填充字节以将各行与有效内存步幅对齐...但是这种格式图像处理起来可能很麻烦,而现在 CameraX 可以将 ImageAnalysis 输出转换为大家更熟悉 RGBA 以方便处理。...我们来看看如何使用 CameraX Extensions API: // 获取后置相机列表 val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA...您可以使用 CameraFilter API 来指定详细规则以选择合适相机。如果应用只需要前置或者后置相机,可以使用 AvailableCamerasLimiter 来加快启动时间。

1.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

Android UVC Camera获取yuvMat

转换yuv byte Bitmap 笨办法可以先将yuvBitmap,然后再使用OpenCV提供Utils.btimapToMat转换成Mat。 但是很明显,中间转换过程可以进行优化。...图像数据比值关系是4:2:0 所以,我们如果想将相机得到yuv数据,转换为Mat只需要写为: Mat yuv_mat = new Mat(480 + (480 / 2), 640, CvType.CV...那么我们如何去区分数组中哪些值是Y,哪些值是U哪些值是V。 就需要知道YUV格式了,也就是上面介绍NV21了。...上面这个代码作用是,将yuv_mat中数据采用YUV420sp格式转换为RGB格式,并赋值给rgb_mat。...因为YUV NV21或者 NV12格式数据,在Mat中识别为了YUV420sp,我们可以统一使用YUV420sp将NV21或NV12格式yuv数据组成Mat转换为其他Mat数据。

48020

Android二维码扫描开发(一):实现思路与原理

二维码处理流程分为几个步骤: 初始化相机,设置一些相机参数; 绑定SurfaceView,在SurfaceView上显示预览图像; 获取相机一帧图像; 对图像进行一定预处理,只保留亮度信息,...流程图如下图所示: 一、初始化相机 相机使用是android.hardware.Camera这个类,在Android 5.0之后,推荐使用更强大android.hardware.Camera2这个类...Camera还可以通过Camera.Parameters类设置预览图像分辨率,但是只能在气可支持分辨率中选择一个,不能随便设置,我们需要根据屏幕大小,在其中选出一个最佳预览图像分辨率,太大浪费资源...四、图像预处理 根据二维码原理,我们只需要图像亮度信息来进行二维码解析,所以我们要把获取到彩色图像转换为灰度图像。...YUV图像转换为灰度图像方法,以及RGB图像转换为灰度图像方法,在后续文章中会有介绍,这里只说原理,具体实现就不再赘述。

1.5K70

HDMI输入CSI-2接口

自然相机也少不了啊 就像这样 放大一点看 正面 背面 在这个TM物价飞涨世界里面,幸亏以前有买板子 其实为了文章完整性,我这里想插一些关于这个相机接口定义内容。...就是这个相机接口,其实我们知道,上面的东西就是模拟了相机视频信号,遵循了固定协议。 前面是V1相机,后面是V2。...每拍一张多发性硬化症 预览参数命令 -p, --preview : 预览窗口设置 -f, --fullscreen :全屏预览模式 -n, --nopreview : 不显示预览窗口 图像参数命令 -sh...该芯片支持高达 1080p60 RGB888、YUV444 或 YUV422 输入 HDMI 信号。...它可以转发RGB888,或者将其转换为YUV444或YUV422,并在YUV444和YUV422之间转换。仅测试了 RGB888 和 YUV422 支持。

2.6K40

音视频生产关键指标:采集预览优化丨音视频工业实战

在这个阶段我们可以关注以下性能指标: 相机打开成功率,相机成功打开没有发生错误比例。 相机打开速度相关: 相机打开平均时长,从相机打开到第一帧采集到图像被预览模块渲染出来平均时长。...相机打开秒开率,从相机打开到第一帧采集到图像被预览模块渲染出来时长小于 1s 比例。 采集预览流畅度相关: 预览平均采集帧率,预览阶段相机采集帧率。...预览平均识别帧率,预览阶段相机采集后经过前处理后帧率。 预览平均渲染帧率,预览阶段前处理完成后预览渲染帧率。 此外,我们还需要关注:采集画面质量、采集内存等指标的优化。...texture with iOS 5 texture cache api[1] 3.4、不同设备智能选择分辨率和帧率 通常低端机效果较多情况下选择 1080P + 30FPS 会比较卡,影响用户体验,如何选择合适分辨率和帧率则尤为重要...因为渲染纹理需要 BGRA,所以需要通过 OpenGLES 将 YUV 数据转换为 BGRA 纹理即可,开销非常小。另一个好处是很多算法输入也都是 YUV 数据格式。

1.2K20

NDK OpenGL ES 3.0 开发(十六):相机预览

OpenGL ES 相机预览 �OpenGL ES 相机预览 相机开发是 OpenGL ES 开发重要应用,利用 OpenGL 可以很方便地实现相机美颜、滤镜、塑型以及一些动态特效,其性能显著优于对应功能...相机预览实现一般有 2 种方式,一种是基于 Android 原生 SurfaceTexture 纯 GPU 实现方式。...另一种是通过相机预览回调接口获取帧 YUV 数据,利用 CPU 算法处理完成之后,传入显存,再利用 GPU 实现 YUV RGBA 进行渲染,即 CPU + GPU 实现方式。...作为预览载体 SurfaceTexture 绑定纹理需要是 OES 纹理,使用 OES 纹理后,我们不需要在片段着色器中自己做 YUV to RGBA 转换,因为 OES 纹理可以直接接收 YUV...相机预览数据常见格式是 YUV420P 或者 YUV420SP(NV21) ,需要将图像数据对应 YUV 3 个分量使用 3 个纹理传入显存,在片段着色器中将 YUV 数据转为 RGBA ,相关原理可参考

2.6K40

HDMI输入MIPI接口

自然相机也少不了啊 就像这样 放大一点看 正面 背面 在这个TM物价飞涨世界里面,幸亏以前有买板子 其实为了文章完整性,我这里想插一些关于这个相机接口定义内容。...就是这个相机接口,其实我们知道,上面的东西就是模拟了相机视频信号,遵循了固定协议。 前面是V1相机,后面是V2。...每拍一张多发性硬化症 预览参数命令 -p, --preview : 预览窗口设置 -f, --fullscreen :全屏预览模式 -n, --nopreview : 不显示预览窗口 图像参数命令 -sh...该芯片支持高达 1080p60 RGB888、YUV444 或 YUV422 输入 HDMI 信号。...它可以转发RGB888,或者将其转换为YUV444或YUV422,并在YUV444和YUV422之间转换。仅测试了 RGB888 和 YUV422 支持。

3.1K40

Sony RX0M2(杂记)

M-JPEG常用在数字相机和摄像头之类图像采集设备上,非线性剪辑系统也常用这种格式。 2.是作为USB摄像头出现YUV简介 YUV格式有两大类:planar和packed。...采样方式 YUV码流存储格式其实与其采样方式密切相关,主流采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0,关于其详细原理,可以通过网上其它文章了解,这里我想强调如何根据其采样方式来从码流中还原每个像素点...开启预览功能,发送 回复,回复一个IP+端口位置 回复每一帧打包格式,这个是在线预览格式包 预览并且捕获一张照片 可以直接询问机器支持APIs 其实我文章到这里就可以了,但是我丢了几次稿...现在梳理一下我们对相机控制有多少: Remote APIs Remote SDK Multi USB接口 WIFI连接模式,蓝牙未知 首先知道多个相机连接是以太网形式,可以实时预览快速传输传输文件到...个像素,纵向有768像素;” 也可以使用APP去群控 接着是官方也给出了,用采集卡直播方案: 注意:要使用 HDMI 端口进行流式传输,您需要一个 HDMI USB 视频捕获设备、一台安装了流式传输软件计算机以及一根

1.1K10

自定义相机如何实现二维码扫描功能

} } } 当然还需要动态申请相机权限,注册activity等 自定义相机 在自定义相机中,我们如何通过zxing实现二维码扫描功能呢?...流程分析 我们先参考一下官方封装,看看整个流程是如何实现。...扫描框一般都是和相机预览界面居中对齐,如果我们需要在扫描框内做二维码识别的话,就需要根据扫描框位置对预览YUV进行裁剪,为了方便映射UI和预览区域进行计算,就偷懒啦 ?...启动预览 打开Camera,启动预览步骤参考Android Camera2详解 获取预览YUV数据 Camera2中获取预览YUV数据参考Android Camera2中如何获取预览YUV数据 二维码扫描...,预览YUV数据是横屏,UI是竖屏 // 所以在扫描框和预览区域居中对齐时候, // 裁剪区域left,top参数为扫描框recttop,left val planarYUVLuminanceSource

1.9K10

Android OpenGL开发实践 - GLSurfaceView对摄像头数据再处理

随着移动网络快速发展,移动端网络速度慢和花费较高瓶颈逐渐消失,直播和视频随着网络发展快速兴起。...在直播和视频和风口之下,如何获取移动端摄像头数据、如何对摄像头数据进行再处理以及如何保存处理后数据成为移动端视频开发者必修课。...下面我们先来看看相机如何通知SurfaceTexture其预览数据已更新。...通过名字也可以看出该回调调用时机,当相机有新预览帧数据时,此回调会被调用。所以我们为前面的SurfaceTexture设置一个回调,来通知我们相机预览数据已更新: ?...文章一开始我们提到,获取相机预览数据还有另一种方式,通过为相机设置Camera.PreviewCallback回调拿到YUV格式数据,这种情况下得到YUV数据格式默认为NV21,也可以通过parameter.setPreviewFormat

12.5K124

一篇文章带你了解Google CameraX

这些都是相机开发里面常用功能。 四、 CameraX基本使用示例 1)实现预览 在向应用添加预览时,请使用 PreviewView,这是一种可以剪裁、缩放和旋转以确保正确显示 View。...当相机处于活动状态时,图片预览会流式传输到 PreviewView 中 Surface。...如需详细了解如何控制相机输出(如变焦和曝光),请参阅此指南。 现在,您已完成实现相机预览操作。请构建您应用,然后确认预览是否出现在您应用中并能按预期工作。...设置 RGBA 输出格式时,CameraX 会在内部将图像从 YUV 颜色空间转换为 RGBA 颜色空间,并将图像位打包到 ImageProxy 第一个平面(其他两个平面未使用) ByteBuffer...如需查看有关如何将 Media.Image 对象从 YUV_420_888 格式转换为 RGB Bitmap对象示例代码,请参阅 YuvToRgbConverter.kt。

3.3K31

TRTCSDK自定义采集YUV视频通话

两个图中,不同手机采集YUV_420_888数据格式不同,左边是yuv420p,右边是yuv420sp 在开始讲demo代码实现过程之前,我们先回顾一下几个知识点:yuv数据、安卓相机camera2...NV21: YYYYYYYY VUVU     =>YUV420SP 2、安卓相机camera2 简介: 从 Android 5.0 开始,Google 引入了一套全新相机框架 Camera2(android.hardware.camera2...Camera2 出现给相机应用程序带来了巨大变革,因为它目的是为了给应用层提供更多相机控制权限,从而构建出更高质量相机应用程序。...、CaptureResult),本文不一一介绍,直接上demo中代码,展示如何打开摄像头拿到Image帧。...一个ImageReader,如果没add,会造成没摄像头预览,或者没有ImageReader那个回调!!

3.1K72

TRTCSDK自定义采集YUV视频通话

两个图中,不同手机采集YUV_420_888数据格式不同,左边是yuv420p,右边是yuv420sp 在开始讲demo代码实现过程之前,我们先回顾一下几个知识点:yuv数据、安卓相机camera2...NV21: YYYYYYYY VUVU     =>YUV420SP 2、安卓相机camera2 简介: 从 Android 5.0 开始,Google 引入了一套全新相机框架 Camera2(android.hardware.camera2...Camera2 出现给相机应用程序带来了巨大变革,因为它目的是为了给应用层提供更多相机控制权限,从而构建出更高质量相机应用程序。...、CaptureResult),本文不一一介绍,直接上demo中代码,展示如何打开摄像头拿到Image帧。...一个ImageReader,如果没add,会造成没摄像头预览,或者没有ImageReader那个回调!!

2.7K81

TRTCSDK自定义采集YUV视频通话

两个图中,不同手机采集YUV_420_888数据格式不同,左边是yuv420p,右边是yuv420sp image.png 在开始讲demo代码实现过程之前,我们先回顾一下几个知识点:yuv数据、安卓相机...NV21: YYYYYYYY VUVU     =>YUV420SP 2、安卓相机camera2 简介: 从 Android 5.0 开始,Google 引入了一套全新相机框架 Camera2(...Camera2 出现给相机应用程序带来了巨大变革,因为它目的是为了给应用层提供更多相机控制权限,从而构建出更高质量相机应用程序。...、CaptureResult),本文不一一介绍,直接上demo中代码,展示如何打开摄像头拿到Image帧。...一个ImageReader,如果没add,会造成没摄像头预览,或者没有ImageReader那个回调!!

2.5K80

FFmpeg 视频录制 - 视频添加滤镜和编码

前文我们对 x264、fdk-aac 及 FFmpeg 进行了整合编译,本文将利用编译好 FFmpeg 库对 Android Camera2 采集预览帧先进行渲染,然后利用 OpenGL 添加滤镜,...预览帧添加滤镜、编码流程 写 OpenGL ES 系列文章时候,很多同学说为啥在 Native 层来写 demo ?...其实就是为了配合 FFmpeg 在视频解码和编码时添加滤镜,那么之前在 native 层写所有关于滤镜 demo ,现在可以直接拿过来用了,比如相机基础滤镜,相机抖音滤镜这些。...我们首先通过 Android Camera2 预览回调获取预览帧(YUV): private ImageReader.OnImageAvailableListener mOnPreviewImageAvailableListener...AV_PIX_FMT_YUV420P,转换之后图像在 pFrame if(recorder->m_SwsContext !

2.2K10

同时使用多个相机流 — Android 相机介绍

多个相机使用场景 一个相机应用可能希望同时使用多个帧流,在某些情况下不同流甚至需要不同帧分辨率或像素格式;以下是一些典型使用场景: 录像:一个流用于预览,另一个用于并编码保存成文件 扫描条形码:...每次请求对应多个目标 通过执行某种官方程序,多相机流可以整合成一个 CaptureRequest,此代码段表明了如何使用一个流开启相机会话进行相机预览并使用另一个流进行图像处理: val session...CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP) .getOutputSizes(outputFormat) 复制代码 在相机预览和录像使用场景中...使用上面定义方法,获取相机 ID 所需预览尺寸非常简单: val characteristics: CameraCharacteristics = ... val context = this as...提供 Surface 有了这些知识,现在我们可以创作一个相机 APP,可以显示和预览流,同时在单独流中对传入帧进行异步分析。

2.3K40

抖音传送带特效是怎么实现

抖音传送带特效原理 通过仔细观察抖音传送带特效,你可以发现左侧是不停地更新预览画面,右侧看起来就是一小格一小格竖条状图像区域不断地向右移动,一直移动到右侧边界位置。...预览时候每次拷贝一小块预览区域图像送到传送带,这就形成了源源不断地向右传送效果。...原理图进行了简化处理, 实际上右侧竖条图像更多,效果会更流畅,每来一帧预览图像,首先拷贝更新左侧预览画面,然后从最右侧竖条图像区域开始拷贝图像(想一想为什么?)。...抖音传送带特效实现 抖音传送带特效实现 上节原理分析时,将图像区域从左侧到右侧拷贝并不高效,可能会导致一些性能问题,好在 Android 相机出图都是横向(旋转了 90 或 270 度),这样图像区域上下拷贝效率高了很多...Android 相机出图是 YUV 格式,这里为了拷贝处理方便,先使用 OpenCV 将 YUV 图像转换为 RGBA 格式,当然为了追求性能直接使用 YUV 格式图像问题也不大。

75920
领券