Qt GUI中的Mediastreamer2 Videostream输出窗口

时间:2015-11-11 12:47:14

标签: c++ qt user-interface video-streaming linphone

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

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

这一行改变了Stream的windowsID,我开始吧。启动时,流窗口有一个新ID。 到目前为止,我尝试了从窗口小部件到框架的GUI中的所有内容......

2 个答案:

答案 0 :(得分:0)

我认为你将很难在qt创建的小部件上使用3方的lib绘制,并且不认为你应该尝试这一点。即使你设法破解它,下一个qt补丁可能会再破坏它。

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

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

答案 1 :(得分:0)

我真的很生气,这很容易。

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

使用mediastream中的windowID创建一个QWindow,并使用WindowContainer创建一个QWidget。