首页 > 解决方案 > gstreamer 在第一个示例程序中没有打开窗口

问题描述

我是 gstreamer 的新手,我正在尝试运行第一个基本官方教程,以下代码

#include <gst/gst.h>

int
main (int argc, char *argv[])
{
  GstElement *pipeline;
  GstBus *bus;
  GstMessage *msg;

  /* Initialize GStreamer */
  gst_init (&argc, &argv);

  /* Build the pipeline */
  pipeline =
      gst_parse_launch
      ("playbin uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm",
      NULL);

  /* Start playing */
  gst_element_set_state (pipeline, GST_STATE_PLAYING);

  /* Wait until error or EOS */
  bus = gst_element_get_bus (pipeline);
  msg =
      gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,
      GST_MESSAGE_ERROR | GST_MESSAGE_EOS);

  /* Free resources */
  if (msg != NULL)
    gst_message_unref (msg);
  gst_object_unref (bus);
  gst_element_set_state (pipeline, GST_STATE_NULL);
  gst_object_unref (pipeline);
  return 0;
}

我已经按照官方网站上的安装过程进行了。我正在使用 Ubuntu 20。我可以听到声音播放,但根据文档,它应该弹出一个窗口,在我的情况下我没有得到。有人可以帮我吗。

我正在使用以下命令来编译和运行

gcc basic-tutorial-1.c -o basic-tutorial-1 `pkg-config --cflags --libs gstreamer-1.0`
./basic-tutorial-1

即使我发出如下命令,我也能听到声音,但不能听到视频窗口打开

gst-launch-1.0 playbin uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm

标签: cubuntugstreamer

解决方案


在我的情况下,它解决了这个问题 - 它的所有功劳归于 [parsley-72]:有一个错误gstreamer1.0-vaapi,你可以删除它,看看它是否对你有帮助(在我的情况下,它解决了这个问题):

sudo apt-get remove gstreamer1.0-vaapi

此页面上,您可以找到有关该错误的信息


推荐阅读