zol*_*233 4 audio web-development-server audio-streaming amazon-web-services node.js
我正在尝试从头开始创建一个点播音频流媒体平台(类似于 Spotify)。它将有 1000 个用户(我正在优化构建时间,而不是目前的可扩展性)。我想使用基于 Web 的技术(我对 React/Redux/Node 有经验)。我可以获得一些有关架构的建议(我应该在该项目中使用哪些技术)?
以下是我需要帮助的事情
我知道这是一个很大的要求,所以提前感谢你们的帮助
我应该使用什么存储服务来存储我的音乐文件(我的歌曲目录约为 50000)
S3(或同等水平)。
音频文件完全适合此用例,并且您已经在使用 AWS。如果您发现成本太高,还有更实惠的兼容服务,甚至可以在 Minio 上进行 DIY。
如何将音乐从存储服务流式传输给每个用户
使用 CDN(或多个 CDN)来优化交付并保持较低的延迟。CDN 也更擅长为慢速客户端提供填鸭式服务。
我应该使用什么服务器协议(RTMP/WebRTC/RTS)
正常的HTTP!这就是您所需要的一切,也是几十年来该用例所需的一切。
RTMP是一个死协议,只有客户端的Flash支持。如今,它的用途仅限于从视频编码器发送源流,甚至这一点也即将被淘汰。
WebRTC 适用于低延迟连接,例如语音通话和视频聊天。这在单向流中并不重要。您实际上需要一种强大的流媒体机制...而不是像手机那样丢弃音频以保持实时性的机制。
RTSP 不是您可以在浏览器中使用的东西,并且对于您的需要来说过于复杂。
只需一个简单的 HTTP 服务就足够了。您的服务器应该支持范围请求,以便浏览器在失去连接时仍然可以从中断处继续,而侦听器甚至不知道。(所有 CDN 都支持这一点,任何正确配置的 Web 服务器也支持这一点。)
(可选)如何将数据存储到缓存中以减少缓冲区
CDN 通常会提高初始连接和加载的性能。我还建议预先加载列表中要播放的下一首曲目,以便您可以立即开始播放。在大多数浏览器中,您实际上可以在上一曲目的末尾开始下一曲目,以实现平滑过渡。
| 归档时间: |
|
| 查看次数: |
1542 次 |
| 最近记录: |