使用 node js 实时流式传输 MP3 文件

Posted

技术标签:

【中文标题】使用 node js 实时流式传输 MP3 文件【英文标题】:MP3 file Live streaming with node js 【发布时间】:2018-11-08 19:14:27 【问题描述】:

我正在尝试将 .mp3 文件上传到节点服务器,以便多个用户在我播放该文件时可以访问该文件。与收音机类似,当我开始播放歌曲时,连接到该服务器的所有用户也应该处于相同的音频位置。

使用许多问答、博客中建议的方法尝试了多种方法,但需要一种直接的方法来处理此目的。

任何有效的代码/指针或指南都会有很大帮助

【问题讨论】:

你有解决办法了吗? 【参考方案1】:

Icecast(又名 icecast2)在所有听众之间会有一个随机延迟。他们每个人之间会有几秒钟的延迟。我播放自己的音乐。我在每个房间里都有电脑和音响播放相同的流。当您从一个房间移动到另一个房间时,您会再次听到相同的合唱。或者完全错过合唱。在过渡时,我家会播放 2 首不同的歌曲,具体取决于延迟时间。

您是否需要每个听众的位置都以毫秒为单位?还是几秒钟的不准确就足够了?如果您需要毫秒级的不准确性,icecast 不是您想要的解决方案。听众之间有几秒钟的不准确。

【讨论】:

【参考方案2】:

您可以使用icecast 流式传输您的mp3 文件并使用node-icy 在节点上管理它们。另外,如果你想让多个频道监听一个实例,我会推荐 socket.io。干杯!

【讨论】:

以上是关于使用 node js 实时流式传输 MP3 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Node.js 通过 ffmpeg 流式传输 MP4 文件?

节点(套接字)实时音频流/广播

将通过 HTTP 流式传输的 wav 实时转换为 mp3

查找带有 HTML5 <audio> 标签的流式 MP3 文件

将 mp3 从服务器流式传输到 html5 音频时传递持续时间

如何流式传输 blob