我正在尝试了解有关 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)并且效果更好。至少音质提高了。
也许有人知道如何解决这个问题?