【问题标题】:MP3 radio Stream buffer underrun detectionMP3 收音机流缓冲区欠载检测
【发布时间】:2018-01-05 03:49:31
【问题描述】:

通过 linux 上的脚本检测 mp3 广播流正在中断的任何指针,当 Internet 连接速度变慢并导致客户端的流停止、缓冲然后播放时,我的广播电台出现问题.

【问题讨论】:

  • 您是说您要检测流的源端何时无法以足够快的速率输出?或者当播放器客户端无法以足够快的速度接收数据时?
  • 是,当源流无法以足够快的速度输出时

标签: stream buffer mp3 internet-radio


【解决方案1】:

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

方法一:假设比特率恒定

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

方法二:服务器播放

您可以在服务器上运行无头播放器(通过cvlc 或类似方法)并跟踪它何时出现缓冲区不足。这将适用于任何比特率,并且会让您对客户端上发生的事情有一个不错的了解。这种播放器设置还可以启用静音检测等实用功能。缺点是解码需要一点 CPU,而自动化需要更多的努力。

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

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

【讨论】:

    猜你喜欢
    • 2018-03-08
    • 2015-10-19
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多