使用Node.js将audiostream式传输到html5audio标签,并绕过iOS限制

我目前正在使用HTML5audio的项目,我们在iOS设备上的限制(主要是多个audio通道限制)方面存在问题。

我在想,使用node.js来控制声音服务器端是可能的。 客户端将连接到一个单一的audiourl,节点服务器将通过这个单一频道传送现场声音,并在服务器上进行所有的混音和转换。

技术上可行吗? 你可以parsingnode.js上的audio,并做一些现场混音? 你认为服务器会爆炸超过5个同时客户?

谢谢

是的,这是完全可能的,但正如Sam所指出的那样,缓冲是一个问题。 有几个重要的延迟:

  • 从客户端获取控制命令
  • 将原始PCMaudio混合到内部缓冲区中
  • 使用正确的编解码器编码数据(要求您以块的forms进行)
  • 发送audio数据
  • 缓冲客户端
  • 在客户端播放缓冲区

把这一切加起来,即使你的工作速度非常快,你仍然在看几秒钟的延迟。

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

关于服务器负载…这不是一个轻量级的过程,但你必须剖析它,看看它真的有多糟糕。 我build议你在尝试这样的事情之前,尝试在客户端一次播放多个audiostream。

请参考这个链接。 它按预期工作,但问题是客户端控制NodeJSstream媒体audio/video与客户端控制

https://stackoverflow.com/questions/32012695/nodejs-streaming-for-audio-video-with-client-side-control