首页 > 其他 > 详细

在imx6.0开发板上实现录屏功能(二)

时间:2021-03-16 10:58:02      阅读:48      评论:0      收藏:0      [点我收藏+]

在imx6.0开发板上实现录屏功能(二)

前言
基于之前的实验测试工作,录屏最好解决方式是用设备缓存的方法关掉gpu加速录制。这种方法还有有不能避免的问题就是不能同时输出hdmi,必须重启wayland服务。与开始的设计不服,另外寻找解决方案。前期录屏方案

Gst元件qmlglsrc

与qmlglsink元件类似从opengl缓存中去读数据,与gldownload元件组合使用。按道理应该能像glupload+qmlglsink元件一样工作。用opengl缓存数据作为源然后生成视频文件。其中qt quick的qml技术正式将所有控件统一渲染到opengl中,所以有两个Item同时作为opengl源刷新时会卡。参考之前的几篇blogs。
qmlglsrc需要数据源是GL的内存,qml渲染好的opengl数据可能不在GL内存中,所以流生成的视频文件始终为0,没有数据。多次实验后无效,考虑其他解决方法。
qmlglsrc元件的srcpads:

Pad Templates:
  SRC template: ‘src‘
    Availability: Always
    Capabilities:
      video/x-raw(memory:GLMemory)
                 format: RGBA
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
         texture-target: 2D

Gst 显示流tee分支到录屏流

这种方法开始在开发板上由于gst公共库lib的断言判断不予许物理地址的内存映射两次,修改gst公共库libXXX后,这种方案可行。

修改图像

通过以上方法录屏可以在appsink中提取Buffer修改后在push-buffer到appsrc,达到修改图像的效果。

在imx6.0开发板上实现录屏功能(二)

原文:https://www.cnblogs.com/wuya178/p/14541317.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!