【发布时间】:2019-10-18 15:33:29
【问题描述】:
我想流式传输 mp3。但是,在发送方对其进行解码会占用带宽。是否可以保留压缩格式并仍然能够将其分割成可独立播放的块?然后我可以将它们一一发送并排队和/或将其缝合回接收方。根据我听说的 mp3(不确定其他格式)应该允许这样的规范。
我也很可能从根本上误解了有关音频播放的一般信息。请指教。
【问题讨论】:
-
听起来你只是需要寻找一个很大的连续流,对吧?
-
潜在的接收者应该能够寻找——是的,所以基本上从发送者那里请求一个与请求时间相对应的任意块。
-
您是否有理由不能简单地使用 HTTP 范围请求?这正是大多数浏览器已经在做的事情......它们会根据用户的需要请求播放文件的某些部分。
-
我将通过原始 TCP 套接字流式传输它,但是 - 是的,它可能归结为像范围请求这样简单的东西。但是从我现在读到的内容 - mp3 帧不一定是独立的,其中一些可能需要组合。
-
没错。位储存器可以将一帧的数据作为 CBR 流中的一种 VBR 发送给其他帧。但是,玩家会为您解决这个问题,并会弄清楚他们需要播放什么。一件棘手的事情是 MP3 文件本质上不是可搜索的。 (另见:stackoverflow.com/a/53747530/362536)玩家可以通过一些技巧来解决这个问题。如果您正在制作自己的低级别播放器,则可能需要实施这些相同的技巧。如果可能的话,我还鼓励您超越 MP3。它肯定不是我们目前拥有的最好的编解码器。
标签: javascript node.js stream mp3