web-dev-qa-db-ja.com

fifoを有効にした状態でのmpdオーディオ再生の不良

OS Xでミュージックプレーヤーデーモン( mpd )と ncmpcpp を使用しています。ncmpcppには機能があります。現在再生している音楽のリアルタイムの波/スペクトルを描画する音楽ビジュアライザー。

これを使用するには、mpdでFIFO出力を有効にする必要があります。

まあ、それは動作しますが、これがオンになっている間、オーディオはひどいです:それはパチパチ音をたて、時にはフリーズさえします。 mpdがフレームをスキップしているようなものです。

FIFOのmpd設定は次のとおりです。

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"

変更する設定が間違っているか、バグを見つけましたか?

4
Rnhmjoj

Mpdバグトラッカーにバグを報告しました report 。この問題は、メンテナンスされていないOSXオーディオ出力プラグインに関連しています。したがって、通常のオーディオ出力と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を実行します

2つのFIFOを使用する場合は、現在の設定を複製し、vlcを次のコマンドで開始します。

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

私が気付いた欠点は、mpdで出力ボリュームを変更できなくなり、ラグが比較的小さいことです。

2
Rnhmjoj

設定にvisualizer_sync_interval = "0"があることに気付きましたが、これはほぼ間違いなく問題です。 ncmpcppのドキュメントで推奨されているように、最初に「30」に設定してみてください。それでも問題が解決しない場合は、そのパラメーターにいくつかの異なる値を試してください。

1
gajogacchati