MP3收音机流缓冲欠载检测

时间:2018-01-05 03:49:31

标签: stream buffer mp3 internet-radio

通过linux上的脚本检测到mp3无线电流正在分解的任何指针,当互联网连接速度变慢并导致客户端流停止,缓冲然后播放时,我的电台出现问题

1 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点。

方法1:假设恒定比特率

如果您知道您将具有恒定比特率,则可以在服务器上测量该比特率,并确定它何时减慢到阈值以下。请注意,这不是最准确的方法,并不总是有效。并非所有流都使用恒定比特率。但是,这种方法就像计算通过线路接收的字节一样简单。

方法2:在服务器上播放

您可以在服务器上运行无头播放器(通过cvlc或类似)并跟踪缓冲区欠载时间。这将在任何比特率下工作,并将让您对客户端发生的事情有所了解。这种播放器设置还可以实现静音检测等实用功能。缺点是它需要一点点CPU来解码,并且需要更多的自动化工作。

方法3(首选):在源

上记录输出缓冲区

您的源编码器将在其输出上有一个缓冲区,数据等待发送到服务器。当此缓冲区增长超过特定阈值时,请记录它。这意味着无论出于何种原因,网络上的输出都会停止。此方法直接从源获取适当的数据,并确保您不必担心在监视音频流时可能会出现的时钟同步问题。 (对于您的编码器,44.1 kHz可能是44.101 kHz的播放器。)此方法可能需要修改您的源客户端。