我们正在开发一个基于 Java 的 IP 语音程序,我们需要找到一种有效的方法来将流和服务器端的压力保持在合理的范围内。我们正在为多人游戏编写这个,我们计划有几种不同的模式来确定如何混合和发送音频。如果他们选择不参与语音聊天,我们计划让它“选择加入”以将无用的流排除在外。除此之外,我们还在考虑频道、私人聊天(2 人)和邻近度。如果我们使用一个有 16 人以上的频道,我们想找出是否有办法避免 x^2 的流数(在本例中为 256)。我们还需要尝试将客户端工作保持在合理的水平,因为它将运行游戏。我们不太确定大型服务器可以处理多少工作,因为随着更多人在一个频道中,它将是指数级的。我们可能需要限制每个频道的人数,或者允许服务器所有者这样做,以及限制频道的数量。根据受欢迎程度,这款游戏可以同时在服务器上容纳大约 40-500 人,我们不确定如何处理服务器处理和带宽上的这种压力。
本质上,我们是在询问是否有人对现有系统有任何了解,这些系统可以有效地处理这个问题。如果有任何相关性,我们将使用 JSpeex 进行音频编码。那么,是否有任何方法可以处理这个问题,或者甚至可能来自社区的一些想法?我们还计划在我们一直在开发的类似 Skype 的小规模程序中重新实现这一点。