一个2多音频流,通过NodeJS或其他什么



一段时间以来,我一直在尝试做一些从未想过会这么难的事情:音频流。我的目标很简单;一个简单的网络应用程序,通过它,某个人可以点击一个按钮,并将自己的声音实时流式传输给使用该应用程序的其他人。这是一个在线课堂。详细信息如下:

  • 广播/讲座安排在特定日期和时间(已完成)
  • 用户以教师/讲师的身份登录到一个简单的界面,在那里他可以点击"开始广播"(完成)
  • 当讲师点击"广播"时,他的声音会流式传输给其他用户。其他学生类型的用户也可以登录并开始收听这位老师开始的广播。(诀窍就在这里!)
  • 在这个过程中,广播本身应该自动存储到本地文件中。这样学生们就可以随时回到那里

当然,我花了很多时间在谷歌上搜索和堆叠这个问题,到目前为止我能理解的是:

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

我觉得它应该是直接的,但我无法让它发挥作用,我无法将所有这些拼凑在一起,为用户提供稳定良好的体验。

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

将GetUserMedia原始数据分解为数据包,并将其转换为mp3,将其流式传输到服务器,脚本(NodJS可能)可以将其存储在本地,并实时流式传输给任何调谐的用户。

我对你推荐的任何工具都持开放态度,我知道NodeJS将出现在解决方案中,我很乐意使用它。如果流媒体可以通过第三方工具完成,我对此没有问题。

提前谢谢你。

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

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

否则,您可能不得不选择第三方解决方案,例如https://www.crowdcast.io/

(即使你找到了只视频的解决方案,你也可以使用静态图片左右的视频)

对许多公司来说,活动广播是一项不错的业务。如果这么简单,市场上就不会只有少数知名的竞争对手。

相关内容

最新更新