Blog jak widać już nie jest aktualizowany. I raczej nie będzie. Wisi sobie ot tak, ze względów historycznych :)

MPD (Music Player Deamon), czyli aplikacja serwerowa do odtwarzania muzyki

Krzysztof Rygielski | 2009-10-10 21:25 | Kategorie: Linux, MPD

Do tej pory odtwarzałem muzykę na moim laptopie, podłączając go długim kablem do amplitunera. Takie rozwiązanie ma jednak pewną niedogodność - ograniczenie długością kabla. Słyszałem kiedyś co nieco o MPD, postanowiłem zapoznać się z tym nieco bliżej.

MPD jest odtwarzaczem multimediów w systemie linux, dziaÅ‚ajÄ…cym praktycznie jako serwer dźwiÄ™ku. Do obsÅ‚ugi wymaga oprogramowania klienckiego np. mpc (narzÄ™dzie konsolowe) czy Sonata (korzystajÄ…cy z GTK+). StwierdziÅ‚em, że caÅ‚kiem przyjemnie byÅ‚oby móc umieÅ›cić kolekcjÄ™ muzycznÄ… na osobnej maszynie, która peÅ‚niÅ‚a by rolÄ™ odtwarzacza i móc sterować niÄ… zdalnie z mojego laptopa, czy też z jakiejkolwiek innej maszyny.

Pierwszym krokiem była instalacja mpd, od razu można też zainstalować narzędzie konsolowe, mpc:

$ poldek -i mpd mpc

Po zainstalowaniu mpd należy go skonfigurować. W pliku konfiguracyjnym /etc/mpd.conf wartych uwagi jest kilka opcji:

music_directory      "/music"                 # lokalizacja kolekcji muzyki
playlist_directory   "/var/lib/mpd/playlists" # katalog, w którym przechowywane bÄ™dÄ… playlisty
db_file              "/var/lib/mpd/mpd.db"    # plik bazy danych mpd
log_file             "/var/log/mpd/mpd.log"   # nie trzeba tłumaczyć... :)
error_file           "/var/log/mpd/mpd.error" # tego też nie :)

Poza tym, odkomentowałem jeszcze linijkę z numerem portu:

port                 "6600"

Zasadniczo to tyle jeÅ›li chodzi o konfiguracjÄ™. Chociaż z niewiadomych wzglÄ™dów baza danych kolekcji nie chciaÅ‚a siÄ™ wygenerować po zwykÅ‚ym zrestartowaniu demona mpd. Powinno to zadziaÅ‚ać po wklepaniu komendy:

$ mpd --create-db

OczywiÅ›cie najpierw trzeba zatrzymać demona mpd, wklepać tÄ… komendÄ™, potem zabić mpd i odpalić demona. Ta procedura raz u mnie dziaÅ‚aÅ‚a, raz nie. Ale restart caÅ‚ej maszyny zdecydowanie pomógÅ‚. Potem można użyć narzÄ™dzia konsolowego mpc do interakcji z mpd. Od razu niestety nic nie bÄ™dzie graÅ‚o. Najpierw trzeba wygenerować playlistÄ™. Ja dla testu wÅ‚adowaÅ‚em do playlisty caÅ‚Ä… zawartość kolekcji w nastÄ™pujÄ…cy sposób:

mpc ls | mpc add

Teraz dopiero można wklepać:

mpc play

i powinna zacząć grać muzyka :-)

Mpc domyÅ›nie Å‚Ä…czy siÄ™ z lokalnym serwerem mpd, ale można go używać zdalnie. Wystarczy ustawić odpowiednie zmienne Å›rodowiskowe w nastÄ™pujÄ…cy sposób:

export MPD_HOST=nazwa_hosta
export MPD_PORT=6600

OczywiÅ›cie korzystanie z konsolowego narzÄ™dzia nie jest super wygodne. Warto zatem zaopatrzyć siÄ™ w jakiegoÅ› graficznego klienta mpd. Ja wypróbowaÅ‚em program o nazwie Sonata. Jego konfiguracja jest stosunkowo prosta. Wystarczy w preferencjach podać adres hosta, numer portu i wszystko dziaÅ‚a. Można nawet utworzyć kilka profili dla Å‚Ä…czenia siÄ™ z różnymi serwerami mpd. Można tam również bardzo Å‚atwo tworzyć playlisty, co w przypadku mpc nie jest już tak intuicyjne. Nie bÄ™dÄ™ tego już opisywaÅ‚ :-)

DodatkowÄ… zaletÄ… mpd jest możliwość wyÅ›wietlania statusu w pidginie przy użyciu opisywanego już przeze mnie pluginu musictracker. Wystarczy wybrać jako odtwarzacz MPD i skonfigurować podajÄ…c nazwÄ™ hosta i port. Również conky dysponuje funkcjami pozwalajÄ…cymi na poÅ‚Ä…czenie z serwerem mpd i wyÅ›wietlanie szczegóÅ‚owych informacji o utworze.

Generalnie mpd w zestawieniu z odpowiednim programem klienta, to świetne narzędzie do zdalnego odtwarzania muzyki. W chwili obecnej mogę odtwarzać muzykę zdalnie z mojego laptopa, bez ograniczeń nakładanych przez długość kabla audio łączącego mnie z amplitunerem :-)

Aktualizacja: Małe sprostowanie co do zmiennych środowiskowych MPD_HOST i MPD_PORT. O ile są one potrzebne do kontrolowania mpd przy użyciu mpc, to dodanie ich na stałe do np. .bash_profile, aby ustawiały się wraz z zalogowaniem do systemu, chyba nie jest dobrym pomysłem. Sonata gdzieś zgubiła zdefiniowane połączenia i nie chciała nawet dać możliwości utworzenia nowego. Dopiero gdy usunałem te zmienne z .bash_profile i się przelogowałem to zaczęło działać prawidłowo. Nie wiem na ile jedno wiąże się z drugim, ale takie są moje obserwacje.