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

为什么视频在camera2接口中会被拉长?

在camera2接口中,视频会被拉长的原因可能是由于摄像头的分辨率与预览视图的宽高比不匹配所导致的。当摄像头的分辨率与预览视图的宽高比不一致时,系统会自动进行缩放以适应预览视图,从而导致视频被拉长或压缩。

为了解决这个问题,可以通过以下步骤进行调整:

  1. 获取摄像头支持的分辨率列表:使用camera2 API中的CameraCharacteristics类的get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP)方法获取摄像头支持的分辨率列表。
  2. 选择合适的分辨率:根据预览视图的宽高比,从支持的分辨率列表中选择最合适的分辨率。可以通过比较分辨率的宽高比与预览视图的宽高比,选择最接近的分辨率。
  3. 设置预览视图的宽高比:根据选择的分辨率,设置预览视图的宽高比,确保与选择的分辨率一致。
  4. 调整预览视图的大小:根据选择的分辨率,调整预览视图的大小,确保与选择的分辨率一致。

通过以上步骤,可以保证摄像头输出的视频在camera2接口中不会被拉长或压缩。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

从今天开始,用对 Android 新老 Camera APIs

Camera 接口中,并没有开放 ISO 的调整接口,但是这并不妨碍预览或拍照时,系统自动调整 ISO 来达到曝光补偿的目的,这也可以解释为什么使用后置摄像头或较新的机型的手机,曝光时间随曝光补偿的变化不明显... Camera2 已经开放了设置相机预览/拍摄时的 ISO 的接口。...2-3-2 Exposure Time 曝光时间 Camera2 还开放了设置曝光时间的接口:CaptureRequest.Builder.set(CaptureRequest.SENSOR_EXPOSURE_TIME...),也会被自动计算出的值给覆盖(最终使用的值可以 CaptureResult 取得),从而使这两个值的调节失效。...Single Shot 当开始预览后,sensor 和 VFE 会产生 preview 和 snapshot 帧, 而最新的 snapshot 帧数据会被存储 buffer

7.7K126

Android摄像头采集选Camera1还是Camera2

更好的适配性和扩展性统一的接口和架构:Camera2 API提供了更统一的接口和更清晰的架构,便于开发者进行相机功能的开发和适配。...广泛的应用场景相机应用开发:Camera2 API提供了丰富的相机控制接口,可以用于开发各种相机应用,如拍照、录像、实时滤镜等。...视频通话和实时视频应用:支持高质量的视频捕获和处理,适用于视频通话、视频会议等实时视频应用。...以下是一个基本的步骤指南,帮助你开始使用Camera2 API:1. 添加权限首先,你需要在AndroidManifest.xml文件添加必要的权限,以便应用能够访问设备的相机。...API控制更灵活,性能、图像处理能力优异、适配性和扩展性也好,版本支持的前提下,一般建议采用Camera2实现摄像头采集技术诉求,以上是Camera1和Camera2技术扫盲和技术探讨,感兴趣的开发者

11010
  • Android流媒体开发之路二:NDK开发Android端RTMP直播推流程序

    既然Android有NDK,可以JNI的方式复用之前的成熟代码,大大拓展和加快项目实现,那为什么不这样去做呢。...对摄像头,通过Camera2接口,获取到更新的Surface,并转交给Opengl.EGL进行绘制,数据被绘制到TextureView的SurfaceTexture上,同时将RGB原始数据回调给Activity...关于Camera2接口获取摄像头数据,可以参考之前的文章“Android流媒体开发之路一:Camera2采集摄像头原始数据并手动预览”,不同的是,那篇文章里直接使用ImageReader的Surface...2. ndk-build方式 对Android.mk来说,跟Makefile差别是很大的,有它自己的语法,它在整个编译过程的位置,可能更接近于automake工具里Makefile.am。...首先要生成一个OES SurfaceTexture,后面要把它传递给Camera2接口,用于接收摄像头画面,之后开始创建RTMP推流模块调用线程,并创建摄像头捕获模块,和渲染模块 ?

    2.1K60

    全网首发:Android Camera2 集成人脸识别算法

    这可能是全网唯一一篇介绍Android Camera2接口集成人脸算法的文章了~ 写在前面: 说起人脸识别,相信大家都不会感到陌生,我们平时的工作生活,人脸打卡、刷脸支付等等已经是应用的非常广泛了,...我们选择人脸检测属性(视频)。如下图所示,效果还不错,我们可以看到识别出来的信息里面包含了性别、年龄、是否是真人这些基本信息。 ?...下面来讲解下代码实现的主要步骤: (不熟悉Camera2接口的同学,建议先找一篇关于Camera2 API的文章先了解下,关于Camera2,我自己前面也写过算是比较详细的文章介绍,也欢迎大家阅读) i...这样我们就能拿到实时的视频流。...不过Android 目前已经不再对Camera旧的架构进行维护,而且目前主流的手机采用的基本上也都是Camera2接口。所以我们还是非常有必要熟悉掌握Camera2的各种使用。

    1.2K10

    全网首发:Android Camera2 集成人脸识别算法

    这可能是全网唯一一篇介绍Android Camera2接口集成人脸算法的文章了~ 写在前面: 说起人脸识别,相信大家都不会感到陌生,我们平时的工作生活,人脸打卡、刷脸支付等等已经是应用的非常广泛了...我们先来看下我自己写的demo效果图: 下面来讲解下代码实现的主要步骤: (不熟悉Camera2接口的同学,建议先找一篇关于Camera2 API的文章先了解下,关于Camera2,我自己前面也写过算是比较详细的文章介绍...这样我们就能拿到实时的视频流。...Camera1 接口上,设置预览数据回调后,回调的直接就是nv21格式的数据,相对来说会比Camera2上的处理会简单很多。...不过Android 目前已经不再对Camera旧的架构进行维护,而且目前主流的手机采用的基本上也都是Camera2接口。所以我们还是非常有必要熟悉掌握Camera2的各种使用。

    1.9K31

    Android Camera2

    ,因为我们会在接下来的教程深入介绍 Camera2 的 API。...修改 CaptureRequest 的闪光灯配置,让闪光灯拍照过程亮起来。 创建两个不同尺寸的 Surface 用于接收图片数据,并且将它们添加到 CaptureRequest 。...11 一些只有 Camera2 才支持的高级特性 如果要我给出强有力的理由解释为什么要使用 Camera2,那么通过 Camera2 提供的高级特性可以构建出更加高质量的相机应用程序应该是最佳理由了。...灵活的 3A 控制 3A(AF、AE、AWB)的控制 Camera2 上得到了最大化的放权,应用层可以根据业务需求灵活配置 3A 流程并且实时获取 3A 状态,而 Camera1 3A 的控制和监控方面提供的接口则要少了很多...Camera2 所有的相机操作都可以注册相关的回调接口,然后不同的回调方法里写业务逻辑,这可能会让你的代码因为不够线性而错综复杂,建议你可以尝试使用子线程的阻塞方式来尽可能地保证代码的线性执行(熟悉

    2.1K51

    CameraX 1.1 有哪些新的特性发布?

    CameraX 基于主要的使用场景来构建,比如实时预览相机、检索缓冲区以进行分析和拍摄照片, CameraX 1.1 版本还加入了视频拍摄功能。... CameraX 1.1 版本我们新增了开发者呼声很高的功能,具体而言,本文中我们将重点介绍: 视频拍摄 YUV 到 RGB 的转换 Beta 版 Extensions API 一些需要了解的其它功能...视频拍摄 CameraX 1.1 版本我们加入了视频拍摄功能,视频拍摄 API (尚处于 Alpha 阶段,细节可能会发生变化,但整体结构基本会保持不变) 提供了录制到文件等基本功能、可自动适配每台设备的...视频拍摄可以输出到 File、FileDescriptor 或 MediaStore,本例我们选择 MediaStore。如果选择启用音频,则需要此应用已经获得音频权限。...已知会发生这种情况的设备上,进行 YUV 到 RGB 的转换及输出 YUV 或 RGB 都会被修复,并且 CameraX 将会持续对更多有需要的设备进行修复。

    1.7K20

    Android Camera2 与 Camera API技术探究和RAW数据采集

    ​Android Camera2Android Camera2 是 Android 系统中用于相机操作的一套高级应用程序接口(API),它取代了之前的 Camera API。...但需要注意的是,虽然 Android 5.0 及更高版本的设备支持 Camera2,但部分设备可能并不支持所有的 Camera2 功能。实际开发,需要根据设备的具体特性和支持情况进行适配和处理。...例如,光线复杂的环境,使用 Camera2 可以根据实际需求手动调整曝光时间,以获得更准确的曝光效果,避免画面过亮或过暗;拍摄特写镜头时,可以手动设置对焦模式和焦距,确保主体清晰。...例如,拍摄视频时,Camera2 可以更流畅地获取和编码视频数据,降低了视频的卡顿现象5。...API 是从 Android 5.0(Lollipop)开始引入的,相对Camera API,优势非常明显,如果需要通过Android平台采集视频数据,设备支持的前提下,建议尽可能用Camera2做数据采集

    14620

    关于Camera性能优化的一些建议

    拍照之前我一直预览,如果在用户点击拍照的瞬间,我将指令传递下去,之前预览的那一帧作为拍照的帧来处理,这样的耗时几乎为0,大大降低了拍照的耗时。...实际过程,可能会存在拍照时没有聚焦的问题,还需要手动聚焦一下,或者设置相机长期聚焦。Camera2原生也是支持Zero-Shot模式的,这样省去了你定制的精力了。...,这样预览、拍照、录制的过程,你不仅需要创建多个CaptureRequest,还要设置多个Surface,这确实有点麻烦。...正常情况下,Surface用来Camera预览 如果点击拍照,将之前的预览帧保存为图片 如果点击录制,将Surface的视频帧编码放入Video Packet Queue,等着封装和时候和Audio...Packet Queue数据一起取出来按照时间戳封装成一个视频文件。

    2.4K10

    视频直播技术--Android视频采集(Camera1)

    camera1.jpg 前言 今天为大家介绍一下使用Camera1进行视频采集。之前我写过一篇文章介绍的是Camera2进行视频采集。那么有人会问,为什么有了Camera2还要介绍Camera1呢?...这里最主要的原因是因为Android版本众多,Camera2是Google新推出的视频采集架构,但很多老的机型还不支持,所以为了兼容性的问题,我们还不能放弃使用Camera1进行视频的采集。...申请Camera权限 第一步, AndroidManifast.xml添加下面设置权限的语句。...将生成的纹理设置到Camera。 4. 开启预览。5. 当有视频帧到达后,使用OpengGL ES绘制图片。 .........参考 视频渲染之EGL Android视频采集Camera2 http://www.jianshu.com/p/39a015f2996e ----

    5.3K41

    Android Camera2 Focus Distance

    厘米,但是如果将LENS_FOCUS_DISTANCE设置为45厘米,它将失去焦点;如果对象35厘米的距离处,并且将LENS_FOCUS_DISTANCE设置为45厘米,则焦点可以正常工作。...88%B0Android%E8%AE%BE%E5%A4%87%E7%9A%84%E8%B7%9D%E7%A6%BB 提问3 我想为自己开发一款Android相机应用程序(如果有兴趣的人可以共享它),视频录制时有手动对焦...我已经谷歌样本Camera2应用程序添加了一个SeekBar,但我找不到实现手动对焦的方法。 我camera2,android中找到了手动对焦,但它在我的LG G4上无效。...库存相机应用程序几乎是完美的,因为它不允许手动对焦视频模式。 你们有谁有想法吗?...测试( https://github.com/pinguo-yuyidong/Camera2 ),允许我们使用搜索栏进行调整。 我想在预览开始时镜头焦距设置一个固定值,直到我关闭应用程序。

    1.5K10

    TRTCSDK自定义采集YUV视频通话

    两个图中,不同手机采集的YUV_420_888数据格式不同,左边是yuv420p,右边是yuv420sp 开始讲demo代码实现过程之前,我们先回顾一下几个知识点:yuv数据、安卓相机camera2...、yuv_420_888 这三个知识点,是demo需要用的音视频基础,下面讲串起来讲一下。...修改 CaptureRequest 的闪光灯配置,让闪光灯拍照过程亮起来。 创建两个不同尺寸的 Surface 用于接收图片数据,并且将它们添加到 CaptureRequest 。...19引入,但真正开始发挥作用还是API 21引入CameraDevice和MediaCodec的增强后。...4、TRTCSDK视频通话 转好了I420 data buffer或者NV21 data buffer格式,经过您三方美颜数据处理之后,就可以交给TRTCSDK的sendCustomVideoData接口

    3.2K72

    一篇文章带你了解Android 最新Camera框架

    HAL 将由供应商或 SOC 制造商构建,放置设备的 /vendor 分区,这样一来,框架就可以在其自己的分区通过 OTA 进行替换,而无需重新编译 HAL,这也是Project Treble框架设计而诞生的...image.png image.png 二、Android Camera2 和HAL3 的基本了解 1) Camera2 接口什么时候开始引入的?...基本原因是,camera1接口过于简单,没法满足更加复杂的相机应用场景。为了给应用层提供更多的相机控制权限,从而构建出更高质量的相机应用程序,Google才推出了Camera2 接口。...灵活的 3A 控制 3A(AF、AE、AWB)的控制 Camera2 上得到了最大化的放权,应用层可以根据业务需求灵活配置 3A 流程并且实时获取 3A 状态,而 Camera1 3A 的控制和监控方面提供的接口则要少了很多...修改 CaptureRequest 的闪光灯配置,让闪光灯拍照过程亮起来。 创建两个不同尺寸的 Surface 用于接收图片数据,并且将它们添加到 CaptureRequest

    1.6K41

    一篇文章带你了解Android 最新Camera框架

    HAL 将由供应商或 SOC 制造商构建,放置设备的 /vendor 分区,这样一来,框架就可以在其自己的分区通过 OTA 进行替换,而无需重新编译 HAL,这也是Project Treble框架设计而诞生的...二、Android Camera2 和HAL3 的基本了解 1) Camera2 接口什么时候开始引入的?...为了给应用层提供更多的相机控制权限,从而构建出更高质量的相机应用程序,Google才推出了Camera2 接口。 下面可以看下和Camera1比较,Camera2有哪些高级特性。...为了解释上面的示意图,假设我们想要同时拍摄两张不同尺寸的图片,并且拍摄的过程闪光灯必须亮起来。整个拍摄流程如下: 1.创建一个用于从 Pipeline 获取图片的 CaptureRequest。...2.修改 CaptureRequest 的闪光灯配置,让闪光灯拍照过程亮起来。3.创建两个不同尺寸的 Surface 用于接收图片数据,并且将它们添加到 CaptureRequest

    3.3K30

    Camera开发需要关注哪些点

    我们接下来要分享VideoEditor的相机处理模块,但是分享之前,还是有必要将Camera的一些问题给理清楚,磨刀不误砍柴工,只有比较清晰地掌握Camera的一些特点和应用的规律,后续优化性能和解决问题的时候就不会手忙脚乱了...学习音视频的同学应该很熟悉这种模式,视频解码一帧放入队列,然后另外一个线程分别从这个队列取出帧,我想之所以这样设置也是为了异步处理。...Camera2将这个过程设置成CaptureRequest,你可以不打开预览的情况下拍照,当然这种情况应用确实不多,不过这正说明Camera2的过程的解耦化做得比较好。...支持一次拍摄多张不同格式和尺寸的照片:Camera1上,你每次拍照只能拍摄一张。Camera2不仅支持连拍,而且通过设置,还可以支持你连拍过程拍摄不同尺寸和格式的照片。 支持连拍:同上。...控制曝光时间:Camera2上你可以规定的曝光时长范围之后设置拍照的曝光时间,适当的曝光时间可以让画面更加清晰,得到的照片清晰度更高。

    73010

    TRTCSDK自定义采集YUV视频通话

    两个图中,不同手机采集的YUV_420_888数据格式不同,左边是yuv420p,右边是yuv420sp 开始讲demo代码实现过程之前,我们先回顾一下几个知识点:yuv数据、安卓相机camera2...、yuv_420_888 这三个知识点,是demo需要用的音视频基础,下面讲串起来讲一下。...修改 CaptureRequest 的闪光灯配置,让闪光灯拍照过程亮起来。 创建两个不同尺寸的 Surface 用于接收图片数据,并且将它们添加到 CaptureRequest 。...19引入,但真正开始发挥作用还是API 21引入CameraDevice和MediaCodec的增强后。...4、TRTCSDK视频通话 转好了I420 data buffer或者NV21 data buffer格式,经过您三方美颜数据处理之后,就可以交给TRTCSDK的sendCustomVideoData接口

    2.8K81

    如何实现RTMP推送Android Camera2数据

    Camera2简介 Google 推出Android 5.0的时候, Android Camera API 版本升级到了API2(android.hardware.camera2), 之前使用的API1...API架构方面, Camera2和之前的Camera有很大区别, APP和底层Camera之前可以想象成用管道方式连接, 如下图: ​ 这里引用了管道的概念将安卓设备和摄像头之间联通起来,系统向摄像头发送...这一切建立一个叫作 CameraCaptureSession 的会话。...下面是 camera2的主要类: ​其中 CameraManager 是那个站在高处统管所有摄像投设备(CameraDevice)的管理者,而每个 CameraDevice 自己会负责建立 CameraCaptureSession....open()方法回调得到CameraDevice; 通过CameraDevice.createCaptureSession() 回调获取CameraCaptureSession; 构建CaptureRequest

    1.5K00

    Android移动直播,自定义采集视频数据推流

    解决方案 Android5.0以上,通过camera2采集YUV_420_888 不再调用 TXLivePusher 的 startCameraPreview 接口。...摄像机的预览回调onImageAvailable(),获取到 YUV_420_888 格式的视频数据,然后将 YUV_420_888 格式转码为 I420 格式,再使用 sendCustomVideoData...摄像机的预览回调onPreviewFrame(),获取到 NV21 格式的视频数据,然后将 NV21 格式转码为 I420 格式,再使用 sendCustomVideoData 向SDK填充您采集和处理后的...完整的示例代码下载地址, 建议将代码复制到腾讯云开发者demo camera完整的示例代码下载地址, 建议将代码复制到腾讯云开发者demo 原理 接口说明 int sendCustomVideoData...camera2获取摄像机预览宽高前,请先检测手机支持的分辨率,如果指定分辨率与支持的分辨率不一致,会获取到比指定分辨率小的画面,sendCustomVideoData时要以实际预览画面的宽高为准。

    4.9K102

    视频直播技术--Android视频采集(Camera2)

    Camera2 介绍 今天为大家介绍一下如何在 Android 上进行视频采集。 Android 系统下有两套 API 可以进行视频采集,它们是 Camera 和 Camera2 。...我今天主要给大家介绍一下如何使用 Camera2 进行视频的采集。...原码可以在这里获取 Camera2 整体工作结构 Camera2结构图 Camera Device:代表一个摄像头,一部手机上有可能有多个摄像头,如前置摄像头,后置摄像头等。...该方法我们可以拿到创建好的 CameraCaptureSession对象。...小结 通过上面对 Camera2 API 使用的分析,我们们可以看到 Camera2 完全采用了异步的架构模式,完成 Camera 每一步操作后系统都会通知用户,用户可以回调时做下一步的操作,而不用一直等待

    2K20
    领券