草庐IT

美颜相机 视频录制 卡顿丢帧 trace 分析

程序员Android1 2023-03-28 原文

和你一起终身学习,这里是程序员 Android

经典好文推荐,通过阅读本文,您将收获以下知识点:

一、美颜相机录制视频 trace 分析概览
二、Camera FWK 与 camera HAL 录像交互
三、美颜相机app 与SurfaceFlinger 交互
四、美颜相机卡顿丢帧trace 分析

一、美颜相机录制视频 trace 分析概览

美颜相机录制视频 trace 分析概览

截取1s 内 美颜相机帧率为30fps, 对应的Camera HAL 、Camera FWK 、美颜相机 App 的帧率如上

二、Camera FWK 与 camera HAL 录像交互

Camera FWK 与 camera HAL 录像交互
Camera FWK 与 camera HAL 录像交互
  1. Camera FWK 通过dequeueBuffer 申请有给buffer,处理一帧请求。
  2. Camera FWK
    通过HIDL进行一阵请求processCaptureRequest_3_4处理,关键字:HIDL::ICameraDeviceSession::processCaptureRequest_3_4::client
  3. Camera HAL 处理FWK 的processCaptureRequest_3_4请求,关键字:
    HIDL::ICameraDeviceSession::processCaptureRequest_3_4::server
  4. Camera HAL 处理完后,通过HIDL callback 通知FWK 处理完成 关键字: HIDL::ICameraDeviceCallback::notify::client
  5. Camera FWK 通过 HIDL::ICameraDeviceCallback::notify::server 获取通知。
  6. Camera HAL 通过HIDL::ICameraDeviceCallback::processCaptureResult_3_4::client 将一帧的处理结果callback 给FWK
  7. Camera FWK 通过HIDL::ICameraDeviceCallback::processCaptureResult_3_4::server 接受 Camera HAL callback 帧
  8. Camera FWK 处理完成后 通过queuebuffer 将buffer 送到SurfaceTexture 中.
  9. queuebuffer 后美颜相机对应的surfaceTexture buffer +1

三、美颜相机app 与SurfaceFlinger 交互

美颜相机app 与SurfaceFlinger 交互
美颜相机app 与SurfaceFlinger 交互流程如下:
  1. Camera FWK 通过queuebuffer callback 给app 一帧 buffer 给SurfaceTexture
  2. 美颜相机app 对应的 SurfaceTexture buffer +1
  3. 美颜相机app 从Camera FWK callback 的帧 取帧处理后,通过queueBuffer 将buffer 送给SF 的BufferQueue中
  4. SurfaceView对应的buffer +1
  5. Vsync-sf 到来后, SF 从 SurfaceView 的buffer 中取出一帧率进行消费并送显, 同时 surface 的 buffer -1

四、美颜相机卡顿丢帧trace 分析

4.1 美颜相机视频录制卡顿trace 分析图
美颜相机视频录制卡顿trace 分析图

美颜相机视频录制卡顿问题分析步骤

  1. Camera HAL 底层出图

  2. Camera FWK callback 并queuebuffer 给app ,对应的SurfaceTexture buffer +1

  3. 美颜相机app 获取FWK callback 的帧进行美颜等处理,处理完成后通过queuebuffer 给SF 的BufferQueue 中, 同时对应的SurfaceView 的buffer +1

  4. 从trace 中看,app 取帧后由于美颜相机app的一些原因,导致没法及时处理帧,并queuebuffer 给SF,进而导致丢帧卡顿。查看此时美颜相机MTRenderEglEngi 渲染引擎一直在不停的Running 状态,同时查看CPU loading 为90%。

  5. SF 在Vsync-sf 到来后,会从bufferQueue中acquriebuffer,但是此时app并没有合成buffer 到BufferQueue,SF没有buffer用来刷新,这时候给用户的感觉就是上一帧显示了2次,进而导致人眼感觉卡顿。

4.2 美颜相机录制视频卡顿1s 内CPU loading 为90%
美颜相机录制视频卡顿1s 内CPU loading 为90%

至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

有关美颜相机 视频录制 卡顿丢帧 trace 分析的更多相关文章

  1. 屏幕录制为什么没声音?检查这2项,轻松解决 - 2

    相信很多人在录制视频的时候都会遇到各种各样的问题,比如录制的视频没有声音。屏幕录制为什么没声音?今天小编就和大家分享一下如何录制音画同步视频的具体操作方法。如果你有录制的视频没有声音,你可以试试这个方法。 一、检查是否打开电脑系统声音相信很多小伙伴在录制视频后会发现录制的视频没有声音,屏幕录制为什么没声音?如果当时没有打开音频录制,则录制好的视频是没有声音的。因此,建议在录制前进行检查。屏幕上没有声音,很可能是因为你的电脑系统的声音被禁止了。您只需打开电脑系统的声音,即可录制音频和图画同步视频。操作方法:步骤1:点击电脑屏幕右下侧的“小喇叭”图案,在上方的选项中,选择“声音”。 步骤2:在“声

  2. 动漫制作技巧如何制作动漫视频 - 2

    动漫制作技巧是很多新人想了解的问题,今天小编就来解答与大家分享一下动漫制作流程,为了帮助有兴趣的同学理解,大多数人会选择动漫培训机构,那么今天小编就带大家来看看动漫制作要掌握哪些技巧?一、动漫作品首先完成草图设计和原型制作。设计草图要有目的、有对象、有步骤、要形象、要简单、符合实际。设计图要一致性,以保证制作的顺利进行。二、原型制作是根据设计图纸和制作材料,可以是手绘也可以是3d软件创建。在此步骤中,要注意的问题是色彩和平面布局。三、动漫制作制作完成后,加工成型。完成不同的表现形式后,就要对设计稿进行加工处理,使加工的难易度降低,并得到一些基本准确的概念,以便于后续的大样、准确的尺寸制定。四、

  3. python ffmpeg 使用 pyav 转换 一组图像 到 视频 - 2

    2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p

  4. TimeSformer:抛弃CNN的Transformer视频理解框架 - 2

    Transformers开始在视频识别领域的“猪突猛进”,各种改进和魔改层出不穷。由此作者将开启VideoTransformer系列的讲解,本篇主要介绍了FBAI团队的TimeSformer,这也是第一篇使用纯Transformer结构在视频识别上的文章。如果觉得有用,就请点赞、收藏、关注!paper:https://arxiv.org/abs/2102.05095code(offical):https://github.com/facebookresearch/TimeSformeraccept:ICML2021author:FacebookAI一、前言Transformers(VIT)在图

  5. [工业相机] 分辨率、精度和公差之间的关系 - 2

    📢博客主页:https://blog.csdn.net/weixin_43197380📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正!📢本文由Loewen丶原创,首发于CSDN,转载注明出处🙉📢现在的付出,都会是一种沉淀,只为让你成为更好的人✨文章预览:一.分辨率(Resolution)1、工业相机的分辨率是如何定义的?2、工业相机的分辨率是如何选择的?二.精度(Accuracy)1、像素精度(PixelAccuracy)2、定位精度和重复定位精度(RepeatPrecision)三.公差(Tolerance)四.课后作业(Post-ClassExercises)视觉行业的初学者,甚至是做了1~2年

  6. ruby - 如何更改此正则表达式以从未指定 v 参数的 Youtube URL 获取 Youtube 视频 ID? - 2

    目前我正在使用这个正则表达式从YoutubeURL中提取视频ID:url.match(/v=([^&]*)/)[1]我怎样才能改变它,以便它也可以从这个没有v参数的YoutubeURL获取视频ID:http://www.youtube.com/user/SHAYTARDS#p/u/9/Xc81AajGUMU感谢阅读。编辑:我正在使用ruby​​1.8.7 最佳答案 对于Ruby1.8.7,这就可以了。url_1='http://www.youtube.com/watch?v=8WVTOUh53QY&feature=feedf'url

  7. 建模分析 | 平面2R机器人(二连杆)运动学与动力学建模(附Matlab仿真) - 2

    目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标

  8. 网站日志分析软件--让网站日志分析工作变得更简单 - 2

    网站的日志分析,是seo优化不可忽视的一门功课,但网站越大,每天产生的日志就越大,大站一天都可以产生几个G的网站日志,如果光靠肉眼去分析,那可能看到猴年马月都看不完,因此借助网站日志分析工具去分析网站日志,那将会使网站日志分析工作变得更简单。下面推荐两款网站日志分析软件。第一款:逆火网站日志分析器逆火网站日志分析器是一款功能全面的网站服务器日志分析软件。通过分析网站的日志文件,不仅能够精准的知道网站的访问量、网站的访问来源,网站的广告点击,访客的地区统计,搜索引擎关键字查询等,还能够一次性分析多个网站的日志文件,让你轻松管理网站。逆火网站日志分析器下载地址:https://pan.baidu.

  9. ABB-IRB-1200运动学分析MATLAB RVC工具分析+Simulink-Adams联合仿真 - 2

    一、机器人介绍        此处是基于MATLABRVC工具箱,对ABB-IRB-1200型号的微型机械臂进行正逆向运动学分析,并利Simulink工具实现对机械臂进行具有动力学参数的末端轨迹规划仿真,最后根据机械模型设计Simulink-Adams联合仿真。 图1.ABBIRB 1200尺寸参数示意图ABBIRB 1200提供的两种型号广泛适用于各作业,且两者间零部件通用,两种型号的工作范围分别为700 mm 和 900 mm,大有效负载分别为 7 kg 和5 kg。 IRB 1200 能够在狭小空间内能发挥其工作范围与性能优势,具有全新的设计、小型化的体积、高效的性能、易于集成、便捷的接

  10. 关于Qt程序打包后运行库依赖的常见问题分析及解决方法 - 2

    目录一.大致如下常见问题:(1)找不到程序所依赖的Qt库version`Qt_5'notfound(requiredby(2)CouldnotLoadtheQtplatformplugin"xcb"in""eventhoughitwasfound(3)打包到在不同的linux系统下,或者打包到高版本的相同系统下,运行程序时,直接提示段错误即segmentationfault,或者Illegalinstruction(coredumped)非法指令(4)ldd应用程序或者库,查看运行所依赖的库时,直接报段错误二.问题逐个分析,得出解决方法:(1)找不到程序所依赖的Qt库version`Qt_5'

随机推荐