我是否应该尝试流式mp3

问题描述 投票:-1回答:1

我正在用python开发一个程序,可播放来自各种网站(主要是mp3)的音频文件。我播放这些文件的第一个想法是尝试将它们与请求一起流式传输,然后解码这些块,以在请求标头中寻找某种范围。

因此,我尝试对此进行一些测试,并遇到了一些问题,即将一小部分数据转换为可播放形式。在深入研究并尝试修复它们之前,我想知道是否甚至需要流式传输。 vlc之类的程序是如何处理它的?您将如何处理?

我做了很多Google搜索,但没有提供任何有用的信息。

python audio-streaming
1个回答
1
投票

是的,如果您正在下载时进行回放,则流媒体是必经之路。

这通常不需要您的任何特殊要求。只需发出一个请求,对数据进行解码,对其进行缓冲,然后在缓冲区变满时对流施加反压。

最终发生的结果是,TCP窗口大小将减小,从而减慢了服务器向您传输的速度,直到它与回放速率匹配为止。 (在实践中,这意味着窗口很快会急速降至零,然后突然打开以打开一些数据包,然后又再次归零,因为如今的互联网连接通常比所需的要快得多。)

现在,如果您失去连接,您仍可能要处理远程请求。也就是说,如果我听了几分钟的音频,然后断开了连接(例如,从WiFi更改为LTE时),则您的应用可以重新连接并请求从中断点开始的所有字节。浏览器执行此操作。当使用常见的HTTP CDN(对于长时间保持打开状态的连接的容忍度较低)时,这一点变得尤为重要。通常,如果TCP窗口大小在2分钟内保持为零,则期望TCP连接关闭。

您可以下载Wireshark的副本或其他一些数据包嗅探器,并在VLC中播放这些HTTP流之一时,观察网络上发生的情况。您会更好地了解引擎盖下发生的事情。

© www.soinside.com 2019 - 2024. All rights reserved.