Złe odtwarzanie dźwięku MPD z włączonym fifo

3

Używam Music Player Daemon ( mpd) z ncmpcppsystemem OS X. ncmpcppma funkcję wizualizatora muzyki, która rysuje falę / spektrum muzyki w czasie rzeczywistym.

Aby tego użyć, musisz włączyć wyjście FIFO w mpd.

Cóż, działa, ale gdy jest włączony, dźwięk jest okropny: trzaska, a czasem nawet zawiesza się. To tak, jakby mpdpomijał jakąś klatkę.

Te mpdustawienia FIFO są następujące:

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

I ncmpcppustawił:

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"

Czy istnieje jakieś nieprawidłowe ustawienie do zmiany lub znalazłem błąd?

Rnhmjoj
źródło
1
Mogę to potwierdzić, dźwięk zacznie się zacinać, jeśli włączę wyjście FIFO. ncmpcpp nie jest przyczyną problemu, dzieje się tak również z mpdviz.
shrx
@shrx Czy korzystasz także z systemu OS X?
Rnhmjoj
Tak, OS X 10.10.2, MPD 0.19.9 zainstalowany z Homebrew.
shrx
1
Złożyłem raport o błędzie .
Rnhmjoj

Odpowiedzi:

2

Złożyłem raport o błędzie w narzędziu do śledzenia błędów MPD. Problem dotyczy nieobsługiwanej wtyczki wyjściowej audio OS X. Zatem jedynym sposobem na utrzymanie zarówno normalnego wyjścia audio, jak i FIFO, jest przesyłanie strumieniowe do innego odtwarzacza.

Możesz wyprowadzać dane przez http lub inny fifo i np. Przesyłać strumieniowo dźwięk do VLC. W przypadku http dodaj do swojej konfiguracji:

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

następnie ustaw ten alias: alias cvlc='/Applications/VLC.app/Contents/MacOS/VLC --intf=rc'

i biegnij cvlc http://localhost:8000

Jeśli chcesz użyć dwóch FIFO, po prostu zduplikuj bieżące ustawienia i uruchom vlc za pomocą:

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

Wady, które zauważyłem, to to, że nie będziesz już mógł zmienić głośności wyjściowej za pomocą mpd i występuje stosunkowo małe opóźnienie.

Rnhmjoj
źródło
Mam ten sam problem, ale z jakiegoś powodu przesyłanie strumieniowe HTTP nie rozwiązuje problemu - muzyka wciąż przeszkadza - bez względu na to, czy przesyła strumieniowo przez http, czy tylko za pomocą CoreAudio i FIFO ... Jedynym sposobem, w jaki działa dla mnie, jest otwarcie Visualizera . Na przykład, jeśli zmienię kartę za pomocą klawisza Tab, zacznie się przerywać, dopóki nie nacisnę 8, aby wyświetlić Visualizer z powrotem, lub dopóki nie wyłączę wizualizatora FIFO, pozostawiając tylko CoreAudio (lub strumień HTTP)… Dziwne…
Drew
@Andrew Miałem dokładnie ten sam problem: jeśli zamkniesz wizualizator, dźwięk zacznie się zawieszać. Dla mnie użycie wyjścia HTTP rozwiązało to. Jednak całkowicie przełączyłem się na Linux, więc nie mogę już nad tym pracować.
Rnhmjoj
1

Zauważyłem, że masz visualizer_sync_interval = "0" w konfiguracji, co prawie na pewno stanowi problem. Najpierw spróbuj ustawić go na „30”, jak zaleca się w dokumentach ncmpcpp - jeśli to nie zadziała, wypróbuj kilka różnych wartości dla tego parametru.

gajogacchati
źródło
2
Myślę, że problem dotyczy MPD, problem utrzymuje się nawet, gdy ncmpcpp nie jest uruchomiony.
Rnhmjoj