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

さて、まだ動画を表示できませんが、プログラムや動画ファイル形式のエラーではありません。http経由でブロードキャストした後、同じプレイビンで同じビデオを表示することができました。

于 2012-05-10T20:36:59.593 に答える
0

おそらく、アプリケーションにビデオ シンクとオーディオ シンクを追加して、何が起こっているかをより詳細に制御したいと思うでしょう。

例 2.1は、その方法を示す Python アプリケーションです。

于 2012-04-23T20:54:15.680 に答える