使用gstreamer通过RTP重新传输数据包

时间:2012-11-12 04:26:01

标签: gstreamer rtp

已建立:我目前正使用gstreamer通过RTP将数据包(.mp3文件)从源(服务器)传输到接收器(客户端A)。这件事很简单,我成功地能够通过网络从一台服务器传输音乐。

要求:现在,我想要从客户端A实时(或至少尽可能接近实时)重新传输数据包,以说明任何其他客户端B.因此,控制仍将保留在客户端A,并且现在只有音乐实际上与客户端B一起流式传输。

做这种事情的最佳方式是什么。

2 个答案:

答案 0 :(得分:1)

假设您想快速尝试一下。理想的方法是在客户端A上设置一个可以转发客户端B数据的rtsp服务器。如果你想这样做,你可以这样做:

如果您在客户端B中有一个可以播放rtp流的播放器给定sdp文件,您可以这样做: 创建客户端A中获得的sdp副本。通过某种路径将其提供给客户端B. [说tcp socket同意通信]

将您在客户端A中获得的内容的副本也流式传输到客户端B.

您需要将sdp中的端口号更改为客户端B上可用的端口号[此RTSP协商的功能]。如果客户端B在获取SDP之前可以告诉客户端A端口号,那么你可以正确设置sdp中的端口号,将其提供给客户端B,然后将其流的副本发送给客户端B.你是完成。

答案 1 :(得分:0)

你也使用RTP over TCP。 所以对你来说很容易,因为RTP级别没有变化要求。 您需要将数据包传递给RTSP,而不是直接通过UDP套接字发送。 一切都将由RTSP处理。 如果您将RTP作为独立使用,请遵循rfc 3550,它不是RTP的一部分 你仍然不想这样做,那么你不遵循标准的RTP实现方式。

相关问题