一个2多个audiostream,通过NodeJS或其他

一段时间以来,我一直在试图做一些我从来没有想过的事情:audiostream。 我的目标很简单, 一个简单的networking应用程序,通过它某个人可以点击一个button,并实时stream自己的声音给其他人使用这个程序。 这是一个在线课堂。 以下是详细信息:

  • 广播/讲座安排在某个date和时间(完成)
  • 用户作为教师/讲师login到简单的界面,在那里他可以点击“开始播放”(完成)
  • 当教练点击“广播”时,他的声音被传送给其他用户。 其他学生types的用户也可以login并开始收听这位老师开始的“广播”。 (这是诀窍!)
  • 广播本身应该自动存储到本地文件的过程中。 这样学生可以随时回复。

当然,我花了这么多小时的search和堆栈来解决这个问题,到目前为止我能理解的是:

  • 如果起点是浏览器,我必须使用GetUserMedia API ,结果是我可以下载的原始PCM数据,发送到服务器或stream到其他人。 (简单)
  • 向听众(学生)提供广播将通过HTML5的audioAPI完成。 (简单)
  • WebRTC不能帮助我,因为这是一个P2P的事情,在这个过程中不可能有一个服务器在中间,我需要在本地保留一份副本。 ( 这是一个工作的例子 )
  • 我可以使用像Binary.js这样的工具将audio二进制数据传输给学生,但是这需要一个文件已经在桌面上。
  • 在这个过程中,我需要将PCM数据转换为MP3或OGG格式,而不使用WAV,因为它的带宽成本非常昂贵。

我觉得应该是直截了当的,但我不能把它工作,我不能把所有这一切,并为用户提供一个稳定和良好的经验。

所以,我很想知道如何做到以下几点:

将GetUserMedia原始数据分解成数据包,并将其转换为mp3,并将其stream式传输到服务器,在该服务器上,脚本(NodJS可能)可以将其存储在本地,并实时调入任何人。

我对任何你推荐的工具都很开放,我知道NodeJS将出现在解决scheme中,我很乐意使用它。 如果stream式传输可以通过第三方工具完成,那么我就没有问题了。

预先感谢您。

我看到您对WebRTC的评论,但我认为您应该更多地进行调查。

就像你在这里看到的一样(旧的): http : //servicelab.org/2013/07/24/streaming-audio-between-browsers-with-webrtc-and-webaudio/

否则,你可能不得不去第三方解决scheme,如https://www.crowdcast.io/

(即使你find一个只有video的解决scheme,你可以使用静态图片等左右的video)

对许多公司而言,事件广播是一项好的业务。 如果那么简单,市场上就不会有less数知名的竞争对手。