2017-07-10 24 views
0

複数のrtspクライアント(カム)をストリームするgstreamerカメラアプリケーションを作成していますが、それらのビデオを単一のGTKウィジェットにバインドしようとしています。私はGTKウィジェットに単一のストリームでアプリケーションを実行していたときに はしかし、それは以下のようにGTKウィジェット上のビデオを重ねgst_bus_set_sync_handler()APIを呼び出すことによっても果たしている:複数のgstreamerビデオウィンドウを1つのGTKウィジェット(RTSPストリーミング)にバインドする

オーバーレイ= GST_VIDEO_OVERLAY(GST_MESSAGE_SRC(メッセージを)); gst_video_overlay_set_window_handle(overlay、xid);

gst_message_unref(message);

複数のrtspストリーミングビデオをバインドする際の問題に直面しています。複数のメッセージを渡すためにgst_bus_set_sync_handler()を使用する方法がわかりません。 複数の描画領域とXIDを作成してみましたが、それでも1つのビデオだけがオーバーレイされています。

ご意見ください。前もって感謝します。

答えて

0

私は全く同じ問題に直面しています。混乱-GSTのフレームワークを使用して、この単一sceen例と同様に1つのウィンドウで複数のシーンを埋め込むことが可能であるかもしれない :

https://github.com/ruby-gnome2/ruby-gnome2/issues/225 

はしかし、私はすでにそれを試してみましたが、複数のクラッターシーンを作成するとき:

GtkWidget *clutter0 = gtk_clutter_embed_new(); 
GtkWidget *clutter1 = gtk_clutter_embed_new(); 

そして、GTKウィンドウにそれらを含む:より良いreadibilityため

GtkWidget *hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); 
gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0); 
gtk_box_pack_start(GTK_BOX(hbox), clutter0, TRUE, TRUE, 0); 
gtk_box_pack_start(GTK_BOX(hbox), clutter1, TRUE, TRUE, 0); 
tk_container_add(GTK_CONTAINER(window), vbox); 

私は、ストリーミングコードが含まれていませんでしたが、それは遺伝子に十分ですエラーに

を評価してそれは私が解決できない二sceenのため、このエラーが得られます。

(gstreamergtkclutterplayer:11614): Clutter-CRITICAL **: Unable to retrieve the geometry of the foreign window: XGetGeometry() failed (status code: 1)

私は例えば1のためにgleglessink、特定のシンクのインスタンスを1つだけ開くことができます読んだと思いますビデオストリームであり、このシンクをもう使用することはできません。例えば、ximagesinkを使用する必要がありますが、私の経験上、これはすべてのシンクには当てはまりません。シンクのいくつかは多くのストリームに対してインスタント化できます。あなたがハードウェアアクセラレーションを与えるので、クラッタシンク。

関連する問題