簡體   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