【问题标题】:Screen recording/capturing with gstreamer or any other frame work that works with eglfs使用 gstreamer 或任何其他适用于 eglfs 的框架进行屏幕录制/捕获
【发布时间】:2021-01-05 13:48:27
【问题描述】:

我在录制屏幕时遇到问题。我可以使用 gstreamer 中的 ximagesrc 插件轻松使用 Nvidia jetson tx2 录制屏幕,但没有 x11,它使用 eglfs_kms_egldevice 集成来运行我无法捕获的 qt 窗口。我尝试使用 ffmpeg 捕获 fb0,但它能够捕获控制台,而不是在其上运行的 qt 应用程序窗口。

【问题讨论】:

    标签: qt gstreamer-1.0


    【解决方案1】:

    是的,eglfs 不写信给/dev/fb0,因此从那里捕获将显示 Qt 应用程序“背后”的任何内容。 eglfs 使用 GPU,所以通过 /dev/dri/card0 和朋友来代替。根据我的研究,您有三个选择:

    1. 从 DRI/DRM/KMS 管道捕获。 ffmpegkmsgrab 输入设备来做到这一点。最简单的解决方案是ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4。很遗憾,内容可能是乱码。

    2. 将 Qt 重定向到帧缓冲区。事实证明这会做:./my_app -platform linuxfb:fb=/dev/fb0。然后您可以使用更人性化的 ffmpeg -f fbdev -i /dev/fb0 output.mp4 来录制屏幕。不幸的是,这不会渲染任何使用 GPU 的功能,例如某些效果、动画和其他多媒体。

    3. 最后,您可以让应用使用 VNC 平台 (-platform vnc),在另一台设备上使用 VNC 客户端,并在那里记录会话。回到 Qt 4.8,您甚至可以同时指定 VNC another driver。不幸的是,我不认为那是 possible any more,所以如果您出于某种原因仍需要本地显示,这不是一个很好的解决方案。

    这么几个解决方案,没有一个是理想的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-14
      • 1970-01-01
      • 2020-09-05
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2015-08-17
      • 2015-03-31
      相关资源
      最近更新 更多