MPlayer 播放音频流时缓存清空

MPlayer 播放音频流时缓存清空

我正在使用 MPlayer 播放实时音频流,并且缓存在一段时间后会清空,我可以使用 -cache (kb) 将其设置得更高,但它最终会耗尽并导致音频流缓冲。

除了进一步增加缓冲区之外,我还能做些什么来防止这种情况发生?

此外,从命令行播放音频流时这些数字代表什么?

A:1695.5 (28:20:8) of 0.0 (unknown) 501.8% 9%

(28:20:8) 似乎是自流开始以来的时间。9% 似乎是可用的缓存。其他数字是什么?

答案1

您在这里问了两个问题,因此我依次回答了:

1. 缓存问题...

您的 MPlayer 缓存设置肯定可以改进,我建议调整或添加以下两个或三个选项:

  1. -cache-min <percentage>:这将允许仅当流的设置百分比已被缓存时才开始播放流。我通常在这里设置 80。
  2. -cache <kBytes>:对于我自己的 MPlayer 流,我通常会设置一个合理的缓存大小,这与-cache-min第 1 点中的设置配合得很好。我在这里使用 16mb,但 MPlayer 需要 kbs:16384。
  3. -bandwidth 1000000:这个设置可能对某些流有帮助,我承认我自己不使用它......

2. 状态行之谜...

至于 MPlayer 状态行上的数字,您无意中问了一个“常见问题”,我为此提供了官方文档的链接这里...。不过,为了让这一切更清楚一点,我在这里给出了一个真实的例子,你可能想看看。我使用此命令行加载以下流(使用我建议的 2 个缓存设置):

mplayer -cache 16384 -cache-min 80 -playlist \
        http://www.abc.net.au/res/streaming/audio/mp3/classic_fm.pls

MPlayer 的状态行将显示以下内容:

A:  21.0 (21.0) of 0.0 (unknown)  0.3% 80%

这意味着:

  1. A: 21.0 (21.0) of 0.0 (unknown):这表示音频流已运行 21 秒,括号中的数字 21.0 表示该流已运行共计 21 秒。我怀疑如果你在流中搜索或者流指定的开始时间不同于你的开始时间与流一起。0.0(未知)表示流没有给出其总长度的指示。
  2. 0.3%:这表示音频编解码器 CPU 使用率(百分比)。您这里的数字 501.8% 似乎有点奇怪...
  3. 80%:正如您所猜测的,这是当前使用的缓存大小。

MPlayer 中状态行的文档并不好,但希望这能让您更好地了解正在发生的事情。

相关内容