Mediastreamer2视频流输出在Qt GUI中显示

Mediastreamer2 Videostream outputwindow in Qt GUI

本文关键字:GUI 显示 Qt 视频 输出 Mediastreamer2      更新时间:2023-10-16

我正在使用Mediastreamer2在Qt中制作多个视频流。当我启动视频流时,mediastreamer2会在新打开的窗口中显示该流。我需要Qt GUI中的流。有什么建议可以解决这个问题吗?

video_stream_set_native_window_id(stream,ui->ANYTHING->winId());

这一行更改Stream的windowsID,如果我启动它。当它启动时,流窗口有一个新的ID。到目前为止,我尝试了GUI中的所有东西,从小部件到框架。。。

我认为您将很难在qt创建的小部件上进行第三方lib绘制,并且认为您根本不应该尝试此操作。即使你设法破解了它,下一个qt补丁可能会再次破坏它。

您应该尝试流式传输到缓冲区,而不是直接到屏幕。我不知道你的流库,但我希望这是可能的。

然后搜索最有利于性能的方法,将该缓冲区转换为QImage或QPixmap,并将其添加到QLabel中。我希望可以在不移动任何数据的情况下完成这项工作。或者,覆盖QWidget的paint()方法,并尝试让QPainter绘制缓冲区。我不知道这是否可能。

我真的很生自己的气,这太容易了。

QWindow *wi = Window::fromWinId(video_stream_get_native_window_id(video)); QWidget *ww = QWidget::createWindowContainer(wi);

从媒体流创建一个带有windowID的QWindow,并使用WindowContainer创建一个QWidget。