如何知道Gstreamer中的网络数据包状态

时间:2012-10-20 00:55:58

标签: networking gstreamer

我已经使用GStreamer为实时流创建了客户端和服务器应用程序。如何知道已到达或未能到达目的地的网络数据包状态?

2 个答案:

答案 0 :(得分:0)

您通常无法知道包裹是否已到达目的地。

e.g。使用UDP时(如udpsrc& udpsink),有 - 按设计 - 无法知道包是否到达目的地。

otoh,当使用TCP / IP时(如在tcpclientsink& tcpserversrc中),协议栈将保证每个包的传送,除非连接断开。在这种情况下,您的一方将收到EOS的通知。

答案 1 :(得分:0)

即使在tcp反馈的情况下也不是实时的。我的意思是服务器上成功的发送API并不意味着该数据包已经到达客户端。它可能仍然停留在其中一个拥塞窗口中,但最终会到达客户端!

如果您通过错误的网络连接在TCP流上连接到RTSP / RTP,则可以非常明显地看到此效果。

像可靠的UDP这样的概念在这里可以提供一些帮助。

What do you use when you need reliable UDP?