1

我正在设计一个我想使用 RTP 的实时语音通信系统。这是我的一般要求:

  • 每个用户将一个音频流流式传输到服务器
  • 传入流的压缩方式可能不同,具体取决于源(SIP 中继、Android 电话、桌面客户端等)
  • 用户可以选择他们想要接收的流

如果用户有无限的带宽并且没有有限数量的端口,我会让他们每个人都为他们想要接收的每个流与服务器打开一个 RTP 流。但是,很多用户将使用 3G 或 2G 网络,所以我的问题是,如何将流(由用户选择)捆绑到单个 RTP 流中?

我见过的一种选择是将流多路复用到一个数据包中,但据我所知,这实际上违反了 RFC(但是,有用于多路复用的工作草案)。

另一种选择是将音频混合到一个数据包中。这是推荐的方法吗?我必须首先将所有选择的流标准化为一种格式。

我对整个 VoIP/流媒体很陌生,所以这可能是一个糟糕的问题。

4

1 回答 1

1

我猜你想使用 tcp 为了不丢失数据。你需要在 tcp 上使用 rtp参见 rfc

这允许通过单个套接字发送多个 rtp 流,每个流具有唯一的 id。

于 2012-07-07T17:57:19.257 回答