我正在尝试学习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);
问题是视频没有显示。唯一显示的是灰色(黑色/绿色/蓝色等)屏幕。有时可能会看到一些数字移动到那里。声音的情况好一点。大多数时候它是可识别的。我尝试设置“缓冲持续时间”和“缓冲区大小”等属性,但我能提到的唯一效果是声音质量的提高。 还有一件事。我试过使用通常的playbin(意思不是playbin2),它的效果更好一些。至少音质增加了。
也许有人知道如何解决这个问题?
答案 0 :(得分:0)
您可能希望在应用程序中添加视频接收器和音频接收器,并更好地控制正在发生的事情。
Example 2.1是一个python应用程序,显示了这一点。
答案 1 :(得分:0)
好吧,我仍然无法显示视频,但这与节目或视频文件格式的错误无关。在我通过http播放后,我设法显示相同的视频,播放相同的播放器。