6

我目前正在开发一个使用 HTML5 音频的项目,但我们遇到了 iOS 设备的限制问题(主要是多音频通道限制)。

我在想也许可以使用 node.js 来控制服务器端的声音。客户端将连接到单个音频 url,节点服务器将通过该单个通道流式传输实时声音,在服务器上进行所有混合和转换。

技术上可行吗?你能在 node.js 上解析音频并做一些现场混音吗?你认为服务器会随着超过 5 个同时客户端而爆炸吗?

谢谢

4

2 回答 2

4

是的,这是完全可能的,但正如 Sam 指出的那样,缓冲是一个问题。在以下几点上会出现明显的延迟:

  • 从客户端获取控制命令
  • 将原始 PCM 音频混合到内部缓冲区中
  • 使用正确的编解码器编码数据(要求您分块执行此操作)
  • 发送音频数据
  • 缓冲客户端
  • 客户端播放缓冲区

把这一切加起来,即使你让它工作得很快,你仍然会看到几秒钟的延迟。

如果您决定走这条路,您将需要一个外部应用程序(或编写您自己的 Node 扩展)来为您进行混合和编码。Sox 可能是一个不错的选择,FFMPEG 包含许多编解码器供您使用。您可以通过 STDIO 使用两者。

关于服务器负载......这不是一种轻量级的过程,但您必须对其进行分析以查看它到底有多糟糕。我建议您在尝试这样的事情之前尝试在客户端一次播放多个音频流。

于 2012-06-07T13:52:55.493 回答
0

请参考此链接。它按预期工作,但问题是客户端控制 NodeJS Streaming for Audio/Video with Client Side Control

https://stackoverflow.com/questions/32012695/nodejs-streaming-for-audio-video-with-client-side-control
于 2015-08-14T14:45:58.893 回答