使用 mplayer 播放音频 CD 时断断续续

使用 mplayer 播放音频 CD 时断断续续

当使用 mplayer 播放音频 CD 时,我总是遇到播放断断续续的情况。播放文件中的音频,例如 MP3(来自任何光学介质或其他驱动器)等,效果很好。观看视频 DVD 也可以。收听硬盘驱动器上的未压缩媒体(例如 WAV 或 CDR)也可以正常工作。

但是当像这样播放音频 CD 时:

mplayer cdda://

它旋转 CD,播放几秒钟,直到缓冲区用完,然后再次旋转 CD,填充缓冲区,然后重复整个过程。我尝试过-nocache,但没有帮助。

如何使 mplayer 保持恒定的缓冲区填充,即连续读取 CD?

答案1

mplayer cdda://问题在于库的使用libcdparanoia,因为libcdparanoia它有自己的缓存方法。此方法将大约 15 秒的时间捆绑在一次从 CD 读取的请求中,并且该时间段足够长,足以使 CD 停止旋转。

有两种方法可以解决此问题:

  1. mplayer使用该库libcdio
  2. 使用选项-cachefrom 的mplayer值大于您要读取的文件大小

我知道第二个选项是一些解决方法,但是当您使用某个发行版的包时,更改库并不那么容易。

还发现了一些具有相同问题的错误报告德班架构Linux

答案2

作为 ByteNudger 答案的后续,由于问题是 CD 剥离,一个违反直觉的解决方案/解决方法实际上是减少缓存大小,以便操作系统被迫更频繁地读取 CD,从而防止分拆,但保留缓存,因为它存在是有原因的。尽管听起来很荒谬,但它对我有用:

mplayer -cache 1024 cdda://

参数-cache是以千字节为单位的缓存。 CD 速率(44.1 kHz,16 位立体声)为 176 kB,因此 1024 kB 略多于 5 秒,这比我的 CD 阅读器的启动时间要短。由于我的阅读器相当吵闹,我根据其噪音通过耳朵聆听来调整旋转所需的时间。

这是一个老问题,但我现在在mplayer1.3.0 (Gentoo Linux) 上遇到了这个问题。我想我可以尝试通过emergeing with绕过 cdparanoia USE='-cdparanoia',但这是特定于发行版的。

相关内容