我对'实时流媒体应用程序的工作方式'有些好奇。最近,我想构建类似在线广播的东西,可以通过音乐,演讲等所有客户进行实时流。我对Java Spring MVC和Node.js非常熟悉。如果使用上述技术有一些资源,那么看看它的工作原理对我来说真的很有帮助。预先感谢。
有两篇好文章:
- 用nodejs在网络上流动音频
- 使用nodejs播放无线电广播
您也可能会发现此模块有帮助:
- https://www.npmjs.com/package/websockets-streaming-audio
做到这一点的最佳方法是使用node.js作为您的源应用程序,然后将流的实际服务留给现有服务器。如果您可以通过编写源结束来获得所需的所有灵活性,则没有理由在网络上重新流式传输。
流程看起来像这样:
Your Radio Source App --> Icecast (or similar) --> Listeners
您的应用程序本身:
Raw audio sources --> Codecs (MP3, AAC w/ADTS, etc.) --> Icecast Source Client
基本上,您需要使用所需的任何方法来创建一个RAW PCM音频流。从那里,您将将该流发送到少数编解码器,并配置了不同的比特率。您使用的比特率和质量取决于用户的带宽可用性以及您喜欢的质量折衷。如今,我通常有64K流的流动连接流以及256K流的良好连接。只要您至少有128K的流,您就可以拿出可接受的质量。
冰淇淋源客户端可以是这些天简单的HTTP。旧方法非常相似...而不是PUT
,动词为 SOURCE
。(还有其他一些较小的差异,但这是要点。)