MP3 无线电流缓冲区欠载检测



任何通过 Linux 上的脚本检测 mp3 无线电流正在中断的指针,当互联网连接速度变慢并导致客户端的流停止、缓冲然后播放时,我的广播电台遇到了问题。

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

方法 1:假定比特率恒定

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

方法 2:在服务器上播放

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

方法 3(首选):在源上记录输出缓冲区

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

最新更新