Schlechte mpd-audio-wiedergabe mit aktiviertem fifo

2104
Rnhmjoj

Ich verwende den Music Player Daemon ( mpd) mit ncmpcppOS X. Er ncmpcppverfügt über eine Funktion, den Music Visualizer, der eine Echtzeitwelle / ein Spektrum der aktuell gespielten Musik zeichnet.

Um dies zu verwenden, müssen Sie den FIFO-Ausgang in aktivieren mpd.

Nun, es funktioniert, aber während das Audio läuft, ist es schrecklich: Es knistert und friert manchmal sogar ein. Es ist, als ob mpdein Frame übersprungen wird.

Die mpdEinstellungen für das FIFO sind:

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

Und ncmpcpphat eingestellt:

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" 

Gibt es eine falsche Einstellung zum Ändern oder ich habe einen Fehler gefunden?

3
Ich kann das bestätigen, der Ton ruckelt, wenn ich die FIFO-Ausgabe aktiviere. ncmpcpp ist nicht die Ursache des Problems, sondern auch bei mpdviz. shrx vor 9 Jahren 1
@shrx Bist du auch auf OS X? Rnhmjoj vor 9 Jahren 0
Ja, OS X 10.10.2, mpd 0.19.9, installiert mit Homebrew. shrx vor 9 Jahren 0
Ich habe einen Fehler [Bericht] eingereicht (http://bugs.musicpd.org/view.php?id=4316). Rnhmjoj vor 9 Jahren 1

2 Antworten auf die Frage

2
Rnhmjoj

Ich legte einen Bug - Bericht über den MPD Bug - Tracker. Das Problem bezieht sich auf das OS X-Audioausgabe-Plugin, das nicht gepflegt wird. Die einzige Möglichkeit, sowohl die reguläre Audioausgabe als auch das FIFO aufrechtzuerhalten, besteht darin, zu einem anderen Player zu streamen.

Sie können über http oder ein anderes FIFO ausgeben und das Audio beispielsweise in vlc streamen. Im Falle von http fügen Sie Ihrer Konfiguration hinzu:

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

dann setzen Sie diesen Alias: alias cvlc='/Applications/VLC.app/Contents/MacOS/VLC --intf=rc'

und Renn cvlc http://localhost:8000

Wenn Sie zwei FIFOs verwenden möchten, duplizieren Sie einfach die aktuellen Einstellungen und starten Sie vlc mit:

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

Die Nachteile, die mir aufgefallen sind, sind, dass Sie mit mpd die Ausgangslautstärke nicht mehr ändern können, und es gibt eine relativ kleine Verzögerung.

Ich habe das gleiche Problem, aber aus irgendeinem Grund löst http-Streaming das Problem nicht - Musik wird immer noch unterbrochen - egal, ob es über http strömt oder nur CoreAudio und FIFO verwendet ... Der einzige Weg, der für mich funktioniert, ist, dass Visualizer geöffnet ist . Wenn ich zum Beispiel die Registerkarte mit der Tabulatortaste ändere, beginnt sie zu unterbrechen, bis ich 8 drücke, um den Visualizer anzuzeigen, oder bis ich den FIFO-Visualizer deaktiviere, der nur CoreAudio (oder http-Stream) verlässt. Drew vor 8 Jahren 0
@Andrew Ich hatte genau das gleiche Problem: Wenn Sie den Visualizer schließen, beginnt das Audio einzufrieren. Bei mir mit der http-Ausgabe wurde es gelöst. Ich habe jedoch komplett auf Linux umgestellt, so dass ich nicht mehr daran arbeiten kann. Rnhmjoj vor 8 Jahren 0
1
gajogacchati

Ich stelle fest, dass Sie in Ihrer Konfiguration visualizer_sync_interval = "0" haben, was fast sicher das Problem ist. Setzen Sie zunächst den Wert auf "30", wie in den Ncmpcpp-Dokumenten empfohlen. Wenn dies nicht funktioniert, probieren Sie verschiedene Werte für diesen Parameter aus.

Ich denke, das Problem liegt bei mpd, das Problem bleibt auch dann bestehen, wenn ncmpcpp nicht läuft. Rnhmjoj vor 9 Jahren 1