4

GStreamerライブラリを使用してローカル ファイルからビデオを再生し、HTTP を使用して Web サーバー上のビデオを再生する小さなプログラムがあります。を使用して C で UDP ビデオブロードキャストに接続するにはどうすればよいGStreamerですか?

たとえば、この架空の URI でストリーミング ビデオを再生するには何が必要ですか? 10.0.11.255:9001

私は試した:

// using playbin2 connect to UDP broadcast
g_object_set (data.playbin2, "uri", "udp://10.0.11.255:9001", NULL);

次に、次のようにストリームを開始しようとします。

/* Start playing */
    if( gst_element_set_state (data.playbin2, GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE )
    {
        g_printerr ("Unable to set the pipeline to the playing state.\n");
        gst_object_unref (data.playbin2);
        return( -1 );
    }

状態メッセージの変更に失敗しました。

私はグーグルで検索を行いましたが、有用なものは何も見つかりませんでした。

編集:さらにグーグルで調べた後、 udpsrcについて知りました。ただし、C コードでの使用方法がわかりません。

4

2 に答える 2

1

問題は、開発を行っている仮想マシンに UDP ブロードキャスト ストリームが転送されないことです。

必要なソース要素を適切に作成するために必要なのは、それを使用playbin2して設定することだけです。uri propertyudp://0.0.0.0:9001playbin2

于 2013-05-09T21:48:43.403 に答える
0

udpsrcは、ネットワークから UDP パケットを読み取るネットワーク ソースです。リモートホストへの接続には使用できません。ポートからのデータの読み取りのみが可能です。

ただし、マルチキャスト グループが設定されている場合は、「マルチキャスト グループ」プロパティをマルチキャスト グループの IP アドレスに設定することで、マルチキャスト グループから読み取ることができます。

使用する場合:

g_object_set (data.udpsrc, "uri", "udp://10.0.11.255:9001", NULL);

これは、IP アドレスが 10.0.11.255 のマルチキャスト グループからデータを読み取っていることを意味し、ホストに接続していません。

于 2013-05-09T06:26:44.477 に答える