我正在设计一个我想使用 RTP 的实时语音通信系统。这是我的一般要求:
- 每个用户将一个音频流流式传输到服务器
- 传入流的压缩方式可能不同,具体取决于源(SIP 中继、Android 电话、桌面客户端等)
- 用户可以选择他们想要接收的流
如果用户有无限的带宽并且没有有限数量的端口,我会让他们每个人都为他们想要接收的每个流与服务器打开一个 RTP 流。但是,很多用户将使用 3G 或 2G 网络,所以我的问题是,如何将流(由用户选择)捆绑到单个 RTP 流中?
我见过的一种选择是将流多路复用到一个数据包中,但据我所知,这实际上违反了 RFC(但是,有用于多路复用的工作草案)。
另一种选择是将音频混合到一个数据包中。这是推荐的方法吗?我必须首先将所有选择的流标准化为一种格式。
我对整个 VoIP/流媒体很陌生,所以这可能是一个糟糕的问题。