0

我正在学习并尝试使用 RTP/RTCP 协议。我的情况是有 1 到 n 个流媒体和 1 个(或可能是 1 到 m,如果需要)接收器,但是流媒体本身并不了解彼此(由于技术原因,他们不能直接了解,例如作为不同的网络,有限的带宽等......)。所以它更像是多个单播会话,但接收者实际上都知道它们,从它们中收集数据,只是发送者彼此不知道。

现在阅读该协议,在我看来,其中很大一部分与发送一些反馈、碰撞检测等有关。所以我有疑问,RTP真的适用于这种情况吗?是否已经在某处以这种方式使用?

在我看来,收集有关 RTP 提供的数据传输的统计数据(数据发送、丢失、时间等)仍然是有益的,只是感觉协议的大部分内容都被遗漏了......

另外我还有一个问题,通过各种 RTP 库,它们都假设发送方也会打开端口以接收 RTP/RTCP 数据,RTP 是否禁止使用单向通信?我的意思是应用程序只会流式传输数据,而不期望收到任何返回。图书馆(例如ccRTP)似乎只假设双向通信......

4

1 回答 1

0

RTCP 是提供统计信息的协议。流接收器(客户端)将通过 RTCP 将统计信息发送到发送器(服务器)。我不相信客户端会从服务器获得任何统计报告。

单个客户端从不同的服务器接收多个单播会话没有任何问题。

RTP 在设置过程中需要双向通信。设置完成并发送播放 cmd 后,这主要是一种方式。例外是必须定期(通常每 60 秒左右)发送到服务器以保持流继续的“保持活动”数据包。确切的超时值在设置过程中发送到客户端。

但是,如果您实现自己的 RTP,则没有什么能阻止您让服务器连续发送流而无需客户端提供任何反馈。基本上它将实现一个无限的超时值。

您可以阅读规范中的所有详细信息:RTP:实时应用程序的传输协议

于 2018-05-21T02:36:15.757 回答