启用 fifo 后 mpd 音频播放效果不佳

启用 fifo 后 mpd 音频播放效果不佳

我正在使用音乐播放器守护程序(mpd) 和ncmpcpp在 OS X 上,ncmpcpp有一项功能,即音乐可视化器,可以绘制您当前正在播放的音乐的实时波形/频谱。

为了使用此功能,您必须启用 fifo 输出mpd

嗯,它能正常工作,但打开它时音频效果非常糟糕:声音嘶哑,有时甚至会卡住。就像是mpd跳过了某些帧。

mpdfifo 的设置如下:

audio_output {
  type   "fifo"
  name   "FIFO"
  path   "/tmp/mpd.fifo"
  format "44100:16:2"
}

ncmpcpp设定:

visualizer_in_stereo = "yes"
visualizer_fifo_path = "/tmp/mpd.fifo"
visualizer_output_name = "fifo"
visualizer_sync_interval = "0"
visualizer_look = "||"
visualizer_color = "blue"
visualizer_type = "spectrum"

是否存在需要更改的错误设置或者我发现了一个错误?

答案1

我提交了一个错误报告在 mpd 错误跟踪器上。该问题与 OS X 音频输出插件有关,该插件已无人维护。因此,保留常规音频输出和 FIFO 的唯一方法是流式传输到其他播放器。

例如,您可以通过 http 或其他 fifo 输出并将音频流式传输到 vlc。对于 http,请将其添加到您的配置中:

audio_output {
  type "httpd"
  name "http stream"
  encoder "vorbis"
  port "8000"
  quality "2"
  format "44100:16:2"
}

然后设置这个别名:alias cvlc='/Applications/VLC.app/Contents/MacOS/VLC --intf=rc'

然后运行cvlc http://localhost:8000

如果您想使用两个 FIFO,只需复制当前设置并使用以下命令启动 vlc:

cvlc --demux=rawaud --rawaud-channels 2 --rawaud-samplerate 44100 /tmp/mpd-vlc.fifo

我注意到的缺点是您将无法再使用 mpd 更改输出音量,并且滞后相对较小。

答案2

我注意到您的配置中有 visualizer_sync_interval = “0”,这几乎肯定是问题所在。首先尝试将其设置为“30”,如 ncmpcpp 文档中所建议的那样——如果这不起作用,请尝试该参数的几个不同值。

相关内容