Плохое воспроизведение звука mpd с включенным fifo

2055
Rnhmjoj

Я использую Music Player Daemon ( mpd) с ncmpcppOS X. ncmpcppИмеет функцию, визуализатор музыки, которая рисует в реальном времени волну / спектр музыки, которую вы сейчас воспроизводите.

Чтобы использовать это, вы должны включить выход fifo в mpd.

Ну, это работает, но в то время как это на аудио ужасно: он потрескивает, а иногда даже зависает. Это как будто mpdпропускает какой-то кадр.

Эти 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" 

Есть ли неправильные настройки для изменения или я обнаружил ошибку?

3
Я могу подтвердить это, звук начинает заикаться, если я включаю выход FIFO. ncmpcpp не является причиной проблемы, это также происходит с mpdviz. shrx 9 лет назад 1
@shrx Ты тоже на OS X? Rnhmjoj 9 лет назад 0
Да, OS X 10.10.2, mpd 0.19.9 установлен с помощью homebrew. shrx 9 лет назад 0
Я подал ошибку [отчет] (http://bugs.musicpd.org/view.php?id=4316). Rnhmjoj 9 лет назад 1

2 ответа на вопрос

2
Rnhmjoj

Я подал отчет об ошибке на трекер ошибок 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, и это относительно небольшое отставание.

У меня та же проблема, но по какой-то причине потоковая передача по протоколу http не решает проблему - музыка все еще прерывается - независимо от того, идет ли она через http или просто используется CoreAudio и FIFO ... Единственный способ, которым он работает для меня, - это открыть Visualizer. , Например, если я меняю вкладку клавишей Tab, она начинает прерываться, пока я не нажму 8, чтобы отобразить визуализатор, или пока я не отключу визуализатор FIFO, оставив только CoreAudio (или поток http)… Странно… Drew 8 лет назад 0
@ Андрей, у меня была точно такая же проблема: если вы закроете визуализатор, звук начнет зависать. Для меня с помощью http выход решил это. Однако я полностью перешел на Linux, поэтому больше не могу над этим работать. Rnhmjoj 8 лет назад 0
1
gajogacchati

Я заметил, что у вас есть visualizer_sync_interval = "0" в вашей конфигурации, что почти наверняка является проблемой. Сначала попробуйте установить значение «30», как рекомендуется в документации по ncmpcpp - если это не сработает, попробуйте несколько различных значений для этого параметра.

Я думаю, что проблема с mpd, проблема сохраняется, даже когда ncmpcpp не работает. Rnhmjoj 9 лет назад 1