私は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ではないことを意味します)を使用しようとしましたが、少しうまく機能しました。少なくとも音質は向上しました。
多分誰かがこの問題を解決する方法を知っていますか?