问题标签 [qvideowidget]

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 投票
0 回答
169 浏览

qt - 在 qwidget Qt 中播放视频 URL

我是 Qt 学习的初学者,如果已经问过这个问题,请原谅我,但相信我,我搜索过,但没有找到任何我想要的东西。所以我想用QMediaPlayerand播放一个 Url 视频QVideoWidget,当我尝试这段代码时:

但它跳过它并回到第一个本地视频

任何人都可以帮助我吗?

0 投票
1 回答
4276 浏览

python - PyQt5 - 在新窗口中打开 QMediaplayer 并播放视频

这可能归结为对 python 的基本理解,但我正在努力使用 PyQt5 和 Python3 在新窗口中打开视频。

当我运行此代码时:

窗口打开并播放视频文件。

我尝试将此代码添加到我的主程序中的一个类中,并尝试调用它,但它总是失败。

我想要实现的是从主 GUI 按 QPushbutton 打开一个新窗口并在该新窗口中播放视频。

正如我所说,这可能是基本的 python 编码,但我想我还没有。

非常感谢您的帮助!!谢谢!

0 投票
1 回答
1333 浏览

python - PyQt5抓取当前帧显示空白

我是 PyQt 的新手,我正在尝试创建一个视频播放器来截取它检索到的当前帧。我实现了这个方法来抓取视频帧以便截取屏幕截图并将其添加到视频播放器GUI中。GUI本质上是这样的:

pyqt 视频播放器 gui

我使用以下代码在VideoWindow 类中为屏幕截图操作创建了一个触发器:

然后我实现了VideoFrameGrabber 类并在截图函数中调用它:

完整代码:

但是,每当我尝试截屏时,视频显示都会变黑。根据音频,视频仍在播放,但从截取屏幕截图的那一刻起,在整个视频期间,当前显示始终保持黑色。当播放器暂停和仍在播放时都会发生这种情况。我认为这是因为 line self.mediaPlayer.setVideoOutput(self.grabber),因为它用抓取器覆盖了屏幕上的当前显示。

我尝试调用 videoWidget 并将其设置为抓取帧后的视频输出,但它似乎覆盖了抓取器并且根本不产生任何屏幕截图。

有没有办法让我同时截屏并在 GUI 上显示视频?

0 投票
1 回答
1674 浏览

python - PyQt5在当前帧之前/之后检索帧

我是 PyQt 的新手,我正在尝试创建一个视频播放器。当用户截取某一帧时,我应该能够检索当前帧之前的 5 帧和当前帧之后的另外 5 帧。到目前为止,我只能检索当前帧,并且很难确定要更改代码的哪一部分以存储前一帧和后一帧。这是完整的代码:

我正在考虑检索当前帧号并创建循环以检索前后帧,然后将它们发送到process_frame保存,但我不知道如何实现它,因为到目前为止,我仍然很难时间掌握视频抓帧器背后的原理。

0 投票
0 回答
430 浏览

qt - 使用 QMediaplayer 从缓冲区播放视频并在视频播放时附加缓冲区

我尝试从缓冲区播放视频并在播放时附加缓冲区,以便两个或多个视频在没有任何延迟的情况下相互播放,因为它们是一个视频,我尝试使用 QMediaPlaylist 并在运行时附加列表,它工作但我在播放按钮中使用此代码的视频之间存在明显延迟

和一个在运行时附加第二个视频的按钮,在这里我做了很多不同的尝试

第一个附加数组但它不起作用,就像我将缓冲区设置为 ReadWrite flage 并且结果相同,结果是只播放第一个视频并且它停止了,所以你能帮我制作这个工作?我在代码中做错了什么让第二个视频在第一个视频之后无法顺利运行,这就是我想要的结果。

0 投票
1 回答
564 浏览

qt - 使用 qt 显示带有 alpha 通道的视频

我需要使用 qt 显示 RGBA 编码的视频(即具有透明背景的视频)。这个想法是实时合并视频。我通常使用 libmpv,但它似乎不允许渲染透明背景视频。我正在尝试使用带有以下代码的 QMediaPlayer:

这成功地加载了视频(这是一个 RGBA mov 视频),但用黑色背景填充了视频小部件,它应该是透明的,因此覆盖了视频播放器后面的任何项目。

有没有办法使用 QVideoPlayer/QVideoWidget 实际加载透明视频?如果没有,是否有有效的替代方案(我宁愿不使用较低级别的解决方案,例如 opencv)。

非常感谢,

弗雷德

0 投票
1 回答
228 浏览

python - 全屏模式下的 QVideoWidget 不再响应热键或鼠标滚轮

在 PySide2 中使用 QVideoWidget(尽管 python 部分可能并不重要)。我已经使用 QShortcut 设置了我的热键,一切都很好。当我按“F”进入全屏模式时,它也可以工作,但是我不能离开。我的热键或鼠标事件处理程序都不起作用。我最终陷入全屏模式。

有没有办法让它在全屏模式下也能响应?我是否以错误的方式创建热键?

这个例子演示了这个问题:

0 投票
2 回答
665 浏览

python - pyqt5:第二个视频不播放:并发 QMediaPlayer 问题?

我基本上是用 pyqt5 构建一个 GUI,应该包含两个视频。为此,我将 QMediaPlayer 与 QVideoWidget 结合使用,每个类一个。关键是:当第一个视频按预期播放时,第二个视频拒绝播放。它使用与第一个完全相同的框架(一个用于播放/暂停的按钮和一个滑动条),以及相同的代码结构,但在尝试播放时屏幕仍然非常黑。

更糟糕的是,如果我评论第一个视频的代码,第二个现在可以正常播放。这是否意味着两个 QMedialPlayer 之间存在一些冲突?我无法理解这一点。

任何帮助将不胜感激。

这是我的代码(GUI 看起来很奇怪,因为为了清楚起见我已经删除了大部分):

0 投票
1 回答
390 浏览

python - PyQt5小部件旨在透明显示QVideoPlayer通过视频并采用QMainWindow背景

我有一个 QMainWindow ,其中 QVideoWidget 设置为中央小部件。该视频就像我正在制作的二十一点游戏主窗口的背景一样。我有两个按钮,我想以部分透明的方式放置在视频顶部。

这就是我希望窗口的样子:

在此处输入图像描述

但我已经尝试了几十种方法来实现透明按钮背景并且不能。任何透明度尝试都会直接“剪切”视频并显示 MainWindow 的背景。例如,我将主窗口背景设置为蓝色。

这是运行时显示的内容:

在此处输入图像描述

如何使视频出现在透明按钮后面?

我尝试过的事情没有成功:堆叠布局设置为 StackAll,在按钮样式表中插入透明背景图像,使用透明颜色代码 (rgba(0,0,0,0)),将 videowidget 设置为按钮的父小部件.

我的代码的相关部分:

0 投票
1 回答
385 浏览

python - pyqt5中qabstractvideosurface的present()的错误视频帧

我正在计算一个带有 pyqt5 的应用程序。我使用 QMediaPlayer 和 QVideoWidget 播放视频,我首先需要做的是在暂停视频时获取当前视频帧。我已经阅读了答案PyQt5 Access Frames with QmediaPlayer,并且我已经实现了 QAbstractVideoSurface 并覆盖了这些方法。最后,我能够获得视频帧,并且 QAbstractVideoSurface 代码显示如下:

而且因为我使用 QVideoWidget 播放视频,所以我需要将 QMediaPlayer 的输出更改为我的 QAbstractVideoSurface 以获得这样的视频帧。

但现在的问题是,auto_detect()当我暂停视频(该帧已播放)时,有时我进入的帧不是当前帧,但有时它是正确的。我也尝试将框架保存在present()方法中,但它与我在方法中收到的相同auto_detect()