问题标签 [qtgstreamer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
85 浏览

qt - QGstreamer VideoWidget 接管整个屏幕

我正在尝试将 QGst::Ui::VideoWidget 嵌入到我的应用程序中。当我这样做时,视频播放正确,但窗口的其余部分被涂黑。我正在使用“fromDescription”函数构建一个管道,使用基本的“playbin”来播放 h.264 编码的文件。

当我初始化除管道之外的所有内容时,所有内容都按原样显示,并带有空白的黑色矩形,否则将播放视频。然而,随着管道的初始化,视频在矩形中播放,但其他一切都完全变黑,除了移动窗口时的一些伪影。

如何限制 QGstreamer 在父类和“表亲”类的区域过度绘制?

我使用的是 Qt 5.9、Qt5-Gstreamer-1.0,我的环境是 Fedora 25,没有硬件视频加速(Virtualbox)。

0 投票
0 回答
457 浏览

c++ - 带有小部件覆盖的 QtGstreamer 小部件

经过长时间寻找答案和大量测试后,我无法在 QtGstreamer 小部件上放置 QWidget(带有半透明图像的 QLabel)。

当我在 QGst::Ui::VideoWidget (显示来自 RTP 流的视频)上添加带有图像的 QLabel 时,带有标签的区域覆盖为黑色并且不显示视频(正在播放)。

我将项目上传到 GitHub https://github.com/MatijaBosnic/QtGstOverlay(更新了代码。现在更简单,更容易阅读)

如何用另一个小部件覆盖 QGst::Ui::VideoWidget?

0 投票
0 回答
662 浏览

qt - 如何防止 QT 绘制到屏幕上?(防止使用gstreamer播放视频时闪烁)

这是QT5。它在嵌入式 Yocto 系统上,QT 绘制到帧缓冲区,没有 X11。问题是这样的。我想使用 gstreamer 播放视频。因此,我尝试使用链接到 QT 中的触摸事件的 gst-launch-1.0 启动 gstreamer。问题是,它闪烁,因为 QT 也尝试渲染帧。

接下来,我们尝试了Q媒体播放器。但是,这个专有的 gstreamer 不支持 playbin,所以,我进入 QGstreamerPlayerSession 并修改了构造函数以使用 gst_parse_launch 来设置我的管道而不是 playbin。

这有效,因为我的视频播放。但是,还是有同样的闪烁!我试图在启动视频之前抛出一个白色矩形,但它仍然闪烁。

如何防止 QT 重绘?在播放视频之前我需要一个空场景吗?还是有一个函数调用来暂停重绘?

我当然可以向 QT 发送 SIGSTOP,在外部应用程序中播放视频,然后使用 SIGCONT 继续。这行得通,但显然是一个非常不雅和限制性的解决方案(我需要应用程序在后台处理仍然作为它控制其他事情)。

0 投票
2 回答
878 浏览

c++ - 将 qtgstreamer 与 Qt 和 Raspberry Pi 一起使用

我在将视频流从树莓派解码到带有 Qt GUI 的笔记本电脑时遇到问题。

我的 pi 管道是(使用 adafruit raspberry pi 相机):

只需使用带有管道的笔记本电脑上的查看器:

以相当不错的速率提供非常漂亮的彩色视频,尽管我没有测量帧速率。

当我在我的 GUI 应用程序中使用 qtgstreamer 时(源宽度 = 640,高度 = 480,并且我假设一个 8 位 RGB 图像)我在下面的代码中得到缓冲区大小 460800,我希望它是 921600。如果我使用 QImage::Format_RGB888 程序会因为图像缓冲区太小而崩溃。如果我使用 QImage::Format_Index8 它将运行良好,在我的 GUI 中显示视频,并且除了黑白之外的所有内容。有人有想法么?这是我的相关代码:

0 投票
0 回答
349 浏览

qt - GStreamer 和 Qt 5.10

所以我目前正在使用 Ubuntu 18,我在使用 GStreamer 和 Qt 5.10 时遇到问题

首先,所有 Qt 示例都返回相同的错误:CameraBin error: "Device '/dev/video0' does not support progressive interlacing"

为了确保 linux 确实识别驱动程序等,我尝试通过 vlc 打开我的网络摄像头,这很成功!所以问题确实是那个interlace选项。有谁知道我如何从 Qt QtGstreamer 更改它,如果我可以在一些外部 GStreamer 文件中更改它?感谢关注!

0 投票
1 回答
396 浏览

c++ - 使用 Cmake 编译 QtGstreamer 时出错,Mingw32 编译器附带 QT 5.12.3

我试图为 QT 编译 GStreamer 包装器,所以我使用 QT 5.12.3 和 Mingw32 7.3.0 下载了 2 个包 iam

  1. gstreamer-1.0-devel-mingw-x86-1.16.0.msi
  2. gstreamer-1.0-mingw-x86-1.16.0.msi

然后我安装了它们,并将 bin 文件夹添加到系统环境中,以便 Cmake 在编译 QtGstreamer 时可以识别 GStreamer 所需的依赖项,我下载了 QtGStreamer 1.2.0 的最新版本并使用 Cmake 生成文件,我链接所有依赖项,即 QT、Boost 和 GStreamer。

当我来到mingw32-make的步骤时,我得到了17%的错误,即

那么我做错了什么?

我不知道是否还需要清除我的错误,请告诉我是否需要添加任何内容

更新

当我配置Cmake选项时,我没有添加qt5declarative Cmake,我把它留空了,在我搜索这部分后我发现QT 5.6不再支持这部分,我不确定问题是否与此有关部分,但总的来说,这是我迄今为止所做的一切。
我的 cmake GUI 的屏幕截图

0 投票
1 回答
617 浏览

qt5 - 如何在 Raspberry Pi3 上的 Qt5 上使用 qt-gstreamer 和 qtquick2videosink

我从 GitHub 上的源代码(版本 1.2.0)构建了 qt-gstreamer。然后我尝试在 Raspberry Pi3 上的 qt5 上运行 qmlplayer2 应用程序(从 qt-gstreamer 构建并使用 qtquick2videosink),但在运行时出现以下错误:

(gst-plugin-scanner:3749):GStreamer-WARNING **:无法加载插件'/usr/lib/gstreamer-0.10/libgstqt5videosink.so':/usr/lib/gstreamer-0.10/libgstqt5videosink.so:未定义的符号: _Z33gst_qt_quick2_video_sink_get_typev 未能创建 qtquick2videosink。确保已正确安装

(qmlplayer2:8517):GStreamer-CRITICAL **:gst_bin_add:断言'GST_IS_ELEMENT(元素)'失败

(qmlplayer2:8517):GStreamer-CRITICAL **:gst_element_link_pads_filtered:断言“GST_IS_ELEMENT(dest)”失败

0 投票
1 回答
731 浏览

qt - 未找到 QML 模块 (QtGStreamer)

我一直在尝试在我的 ubuntu 18.04 上安装 gstreamer 并将其集成到 Qt 5.14.1 项目中。(快速提醒:我不是 Qt 和 Linux 方面的专家。)

这些是我为了安装 gstreamer 所遵循的安装步骤:

它在/usr/lib/x86_64-linux-gnu//usr/include/Qt5GStreamer/下安装了一堆文件。

我在 .pro 文件中扩展了 PKGCONFIG,如下所示:

在我的 QML 文件中,我尝试像这样导入它:

这会导致错误。

未找到 QML 模块。(QtGSteamer)

我真的很感激这件事。

0 投票
1 回答
200 浏览

qt - 在 Visual Studio 2017 中使用和安装 libVlc 或 GS​​treamer for QT

我想使用 Visual Studio 2017 中的 QT 库在 Windows 10 中播放 RSTP 流。在 QT Ctrator 中使用 DirectShowPlayer 我有这个错误:

DirectShowPlayerService::doSetUrlSource: 未解决的错误代码 0x800c000d

我发现了一些使用 libVlc 或 QT-Gstreamer 的代码示例。

不幸的是,我不熟悉 QT 世界和构建库的逻辑。我对cmake和相关的一无所知。有谁知道安装和使用这些库(甚至“通用”库示例)的简单分步过程?

提前致谢

0 投票
0 回答
76 浏览

gstreamer - 对“QGst::Quick::VideoSurface::VideoSurface(QObject*)”的未定义引用

我正在尝试在嵌入式 linux 设备的 Qt 小部件中显示视频。到目前为止没有运气,我想尝试使用这个 QML 元素:QGst::Quick::VideoSurface将它与 Gstreamer 一起使用。我运行了我的 Qt 应用程序中给出的示例用法代码,它通常运行良好:

但第二行抛出以下错误:

甚至我的 IDE 也可以通过 Ctrl+单击类名来找到此方法。

我尝试了不同的语法,在构造函数调用中添加了一个参数,寻找缺少的模块和包含,但我总是求助于这个错误。我的 .pro 文件包括以下几行: