0

我正在尝试了解有关 gstreamer 的知识,并且对于 niw,我正在使用 gstreamer 接收视频流,该视频流由 vlc 播放器通过 udp 流式传输。为了做到这一点,我编写了以下代码。

playbin = gst_element_factory_make("playbin2", "play");
g_object_set(G_OBJECT(playbin), "uri", uri.c_str(), NULL);

bus = gst_pipeline_get_bus(GST_PIPELINE(playbin));
gst_bus_add_watch(bus, &bus_watcher, NULL);
gst_object_unref(bus);

gst_element_set_state(GST_ELEMENT(playbin), GST_STATE_PLAYING);

问题是视频不显示。灰色(黑色/绿色/蓝色等)屏幕显示的唯一内容。有时可以看到一些人影在那儿移动。声音的情况要好一些。大多数时候它是可以识别的。我尝试设置像“buffer-duration”和“buffer-size”这样的属性,但我能提到的唯一效果是声音质量的提高。还有一件事情。我尝试使用通常的 playbin(意思不是 playbin2)并且效果更好。至少音质提高了。

也许有人知道如何解决这个问题?

4

2 回答 2

0

您可能希望在应用程序中添加一个视频接收器和一个音频接收器,并更好地控制正在发生的事情。

示例 2.1是一个 Python 应用程序,它显示了这样做。

于 2012-04-23T20:54:15.680 回答
0

好吧,我仍然无法显示视频,但这与程序或视频文件格式错误无关。在我通过 http 广播后,我设法用相同的 playbin 显示相同的视频。

于 2012-05-10T20:36:59.593 回答