4

我有一个小程序,它使用该GStreamer库播放来自本地文件的视频和使用 HTTP 的网络服务器上的视频。如何使用 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 property的全部内容。udp://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 回答