使用node.js进行缓冲音频播放的算法/技术

罗希特·马诺哈(Rohit Manohar)

我正在使用node.js从Web播放音频流,例如广播电台或mp3流。数据流如下:

广播电台(mp3音频)->我的node.js脚本-> me脚的mp3解码器(node-lame)-> PCM输出到声卡(node-sound)。

问题是由于网络延迟,播放有时会中断。所以我要做的是将所有数据块缓冲到一个变量中。一旦变量大小达到(1Mb),我就开始从变量而不是直接从流中播放声音。解决了播放中断的问题。

我的问题是-我可能不需要等到缓冲区大小达到1Mb。确保存在用于检测平均网络速度或延迟并确定不间断回放的最佳缓冲区大小的算法或某种计算方法当然,我可以从反复试验中得出一些草率的解决方案,但是我想知道是否有任何算法或技术可以帮助我实现目标?

我四处搜寻以找到有关DSP帧大小的一些白皮书,但这里的社区建议会很棒。

吉姆101

缓冲需要预测,但是“预测非常困难,尤其是关于未来的预测”:-)

如果您正在做简单的事情,则缓冲区大小决定了从播放开始到听到音频的等待时间。如果作为用户,您可以在那里忍受较长的延迟,请相应地设置一个较大的缓冲区。如果不是这样,许多更好的缓冲算法(可能包括电话的语音通道)会改变播放速率,以比标称速率稍慢的速度播放音频,直到建立了较大的缓冲区。如果您可以控制音频硬件,那将是最好的解决方案-您可以缓慢建立数MB的缓冲区,而不会影响从单击播放到收听音频的延迟。用户通常不会注意到价格变化适中的情况-大多数美国无线电视台将歌曲播放速度提高了2%以上,以适合更多的商业广告,而且几乎没人注意到。很多人注意到5%。

有许多尝试将其训练到理想大小的方案,但是您的本地wifi以及站点播放的可靠性使“一刀切”的算法变得困难。人们会指向YouTube,Netflix,Hulu等,但是这些都不是真实的,所以这是一个不同的问题。Twitch.tv有直播内容,开始时会有缓冲延迟。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用libgdx进行音频录制和播放

来自分类Dev

如何使用js音频api播放多个音频

来自分类Dev

如何在Node.js中实现简单的音频播放?

来自分类Dev

使用Jquery / Javascript进行多实例音频播放

来自分类Dev

在Swift中使用AV Audio Player进行条件音频播放

来自分类Dev

需要在Node.js中使用Kurento复合媒体元素进行音频会议的帮助

来自分类Dev

使用AVAudioEngine从内存播放立体声音频缓冲区

来自分类Dev

如何在Tone.Player中使用音频缓冲区播放音调?

来自分类Dev

使用JS在键盘事件上无法播放音频吗?

来自分类Dev

使用 discord.js 无限播放音频

来自分类Dev

使用Node JS进行弹性搜索排序

来自分类Dev

使用Node.js进行Web抓取

来自分类Dev

使用Node.js的最佳缓冲区大小?

来自分类Dev

安装和使用Node JS

来自分类Dev

使用Node JS导出功能

来自分类Dev

安装和使用Node JS

来自分类Dev

使用Node.js登录

来自分类Dev

使用章鱼部署Node js

来自分类Dev

Node js 端口已被使用

来自分类Dev

使用elmongo插件时使用node.js进行elasticsearch

来自分类Dev

使用Axios使用node.js进行Face API

来自分类Dev

使用本地文件的Node-Webkit音频

来自分类Dev

从socket.io收到消息后从客户端播放音频-node.js

来自分类Dev

从socket.io收到消息后从客户端播放音频-node.js

来自分类Dev

基于Web的广播和音频流服务是否使用Web Audio API进行播放?

来自分类Dev

使用Meteor(PhoneGap)在iOS中进行UIWebView本地视频/音频播放无法正常工作

来自分类Dev

使用AVPlayer进行HLS音频播放时对ControlCenter事件做出反应

来自分类Dev

如何在Windows游戏PC上使用Bluetooth进行音频播放?

来自分类Dev

使用Jquery播放音频

Related 相关文章

热门标签

归档