为什么autovideosink不会在连接的Qt5'QVideoWidget上显示视频?

时间:2016-07-19 17:46:53

标签: c++ qt qt5 gstreamer qwidget

我已经链接了一个正常工作的管道。 它包含:

  1. playbin2
  2. tee - > udp分支(不相关)和视频分支上的输出,其中包含:
  3. 队列
  4. videoconvert(ffmpegcolorspace)
  5. autovideosink
  6. 我知道它工作正常,因为媒体被发送到autovideosink,但问题是我的应用程序打开了“GStreamer Direct3D接收器默认窗口”并在那里输出视频。

    autovideosink通过以下方式连接到QVideoWidget:

    video_widget_1->setAttribute(Qt::WA_NativeWindow, true); // this is a QVideoWidget, still, this may be unnecessary
    WId win_1_id = video_widget_1->winId();
    QApplication::sync(); // may be unnecessary
    gst_x_overlay_set_window_handle(GST_X_OVERLAY(data->el_autovideo_snk_1), win_1_id);
    

    我不打算使用QtGstreamer,因为我发现它很难安装。

    如果我设置一个只包含playbin2的简单管道,并将其连接到视频单元,则媒体会正确显示到窗口小部件中。

    所以playbin2正确输出到视频单元,但是autovideosink没有。为什么?

    我错过了什么吗?或者有替代autovideosink吗?

0 个答案:

没有答案