繁体   English   中英

Qt叠加在GStreamer上

[英]Qt Overlay over GStreamer

考虑到当前设置,我有一个问题:

  • iMX6 Yocto Linux
  • 既不是窗口管理器也不是显示管理器
  • 功能齐全的Qt应用程序,已在Debian 9上进行了测试

该应用程序包含2个主要元素:

  • GStreamer部件,带有imxg2dvideosink
  • 半透明的Qt叠加层,应在流上显示

问题:

在将两个部分都全屏显示(填满整个屏幕)的同时,如何完成在流上显示覆盖图? 可能的解决方案:

  • /dev/fb1作为/dev/fb0的覆盖(如何将单个应用程序拆分为两个fb ?)
  • 使用显示管理器?
  • 使用窗口管理器?
  • linuxfb而不是eglfs

我目前(无效)的解决方案:

  • 使用-platform eglfs
  • 该应用程序将首先启动GStreamer ,然后显示覆盖

我自己找到了解决方案。 在以下共享:

1)在/dev/fb1上运行Qt应用程序:

  • export QT_QPA_EGLFS_FB=/dev/fb1 (指定/dev/fb1作为eglfs帧缓冲器)
  • echo 0 > /sys/class/graphics/fb1/blank (空白帧缓冲区)
  • fbset -fb /dev/fb1 --geometry <your geometry here> (设置帧缓冲几何体)
  • ./YourApplication -platform eglfs (运行应用程序)

如果希望完全不透明同时覆盖层具有完全透明的部分,请使用颜色键。

2)在/dev/fb0上运行GStreamer:

  • gst-launch-1.0 videotestsrc ! imxg2dvideosink framebuffer=/dev/fb0

这是eglfs的解决方案。 其他可能性是linuxfb

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM