Music Player Daemon (Polski)

From ArchWiki
Revision as of 10:51, 30 September 2013 by 3ED (Talk | contribs) (fixes)

Jump to: navigation, search

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Artykuł wymaga rozszerzenia i sprawdzenia poprawności istniejących już informacji. (Discuss in Talk:Music Player Daemon (Polski)#)

MPD (Music Player Daemon) jest to lekki i szybki odtwarzacz dźwięku działający na zasadzie serwer-klient. MPD uruchamia się w tle jako usługa systemowa (daemon). Posiada obsługę playlist, zarządza muzyką na podstawie bazy danych. Do obsługi potrzebny będzie jeden z klientów czyli program obsługujący serwer mpd.

Instalacja MPD

Ostatnia stabilna wersja mpd dostępna jest w oficjalny repozytorium.

Wersje eksperymentalne/rozwojowe można znaleźć w AUR. Przykład: mpd-git

Konfiguracja MPD

MPD można używać lokalnie (na ustawieniach użytkownika), globalnie (ustawienia odnoszą się do wszystkich użytkowników), a także równolegle. Wybór kierunku zależy od przeznaczenia, przykładowo na komputerach domowych lepszym rozwiązaniem może okazać się konfiguracja lokalna.

Niezbędne katalogi i foldery do prawidłowego działania aplikacji:

database - baza danych muzyki
pid - plik w którym przechowywany jest identyfikator procesu
log - dziennik zdarzeń
state - obecnie odtwarzane
playlists - katalog z listami odtwarzania
sticker.sql - plik bazy danych z dodatkowymi danymi programów-klientów

Aby MPD mogło odtwarzać dźwięk, ALSA, PulseAudio lub OSS muszą być prawidłowo skonfigurowane.

Konfiguracja lokalna

MPD może być skonfigurowany na koncie użytkownika (zamiast typowej konfiguracji globalnej). Takie rozwiązanie ma swoje korzyści:

  • Pojedynczy katalog ~/.mpd (lub jakikolwiek inny w /home/$USER/) będzie zawierał wszystkie pliki konfiguracyjne.
  • Łatwiej uniknąć problemów z uprawnieniami.

Aby rozpocząć: stwórz katalog dla niezbędnych plików i playlist; stwórz wszystkie wymagane pliki:

$ mkdir -p ~/.mpd/playlists
$ cp /usr/share/doc/mpd/mpdconf.example ~/.mpdconf
$ touch ~/.mpd/{database,log,state,pid,sticker.sql}

Edytuj ~/.mpdconf i sprecyzuj położenie plików:

~/.mpdconf
music_directory    "~/Muzyka"          # Zakomentuj jeśli XDG wskazuje na muzykę.
playlist_directory "~/.mpd/playlists"
db_file            "~/.mpd/database"
log_file           "~/.mpd/log"
pid_file           "~/.mpd/pid"
state_file         "~/.mpd/state"
sticker_file       "~/.mpd/sticker.sql"

Od teraz MPD może być uruchomione polecenie mpd (wpierw sprawdzi ~/.mpdconf, później ~/etc/mpd.conf [brak wsparcia dla katalogów konfiguracji XDG, jak ~/.config/mpd/mpd.conf]). Aby sprecyzować położenie pliku:

mpd /path/to/mpd.conf

Aby uruchomić MPD po zalogowaniu, dodaj do ~/.profile (lub innego Autostart file):

# Uruchamianie MPD (jeżeli nie został już uruchomiony)
[ ! -s ~/.mpd/pid ] && mpd

Aby uruchomić wraz z X.org(iem), dodaj do xprofile lub xinitrc. Przez niektóre DE, pliki te są ignorowane (np. przez GNOME), zastąpić je można plikiem autostart (specyfikacja XDG) - tu: ~/.config/autostart/mpd.desktop; to:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Music Player Daemon
Comment=Serwer odtwarzający muzykę
Exec=mpd
StartupNotify=false
Terminal=false
Hidden=false
X-GNOME-Autostart-enabled=false

Konfiguracja globalna

Domyślnie w Archu pliki MPD trzymane są tu: /var/lib/mpd; domyślny użytkownik to mpd.

Edytuj /etc/mpd.conf aby ustawić:

/etc/mpd.conf
music_directory       "/ścieżka/do/katalogu/z/muzyką"
playlist_directory    "/var/lib/mpd/playlists"
db_file               "/var/lib/mpd/mpd.db"
log_file              "syslog"
pid_file              "/run/mpd/mpd.pid"
state_file            "/var/lib/mpd/mpdstate"
user                  "mpd"

Ustawiliśmy właśnie MPD aby był uruchamiany na użytkowniku mpd, lecz właścicielem /var/lib/mpd jest root, możemy to zmienić:

# chown -R mpd /var/lib/mpd

Aby uruchomić MPD wykonaj:

# systemctl start mpd.service

Jeżeli chcesz by MPD było automatycznie uruchamiane przy każdym starcie systemu, wykonaj:

# systemctl enable mpd.service

Inne opcje konfiguracji

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Needs that the new options were included (Discuss in Talk:Music Player Daemon (Polski)#)
####################### WYMAGANE ŚCIEŻKI #######################
#katalog z muzyką:
music_directory                 "~/muzyka/"

#katalog dla playlist:
playlist_directory              "~/muzyka/playlisty/"

#plik dla bazy danych:
db_file                         "~/.mpd/mpd.db"

#plik z logiem:
log_file                        "~/.mpd/mpd.log"

#plik z logiem błędów:
error_file                      "~/.mpd/mpd.error"
################################################################


###################### OPCJONALNE ŚCIEŻKI ######################
#
# Jeżeli życzysz sobie używać mpd --kill do zatrzymania mpd,
# musisz podać ścieżkę do pliku w którym mpd zapisze swój
# numer procesu.
#
pid_file                        "/home/kowalski/.mpd/mpd.pid"
#
# Jeżeli życzysz sobie obsługi sesji (zapisuje stan odtwarzania
# utworu, playlistę, odtwarzanie/pauza, itp.), podaj ścieżkę
# do pliku do którego mpd będzie zapisywał te informacje aby
# po ponownym uruchomieniu sesja zostanie przywrócona..
#
state_file                      "/home/kowalski/.mpd/mpdstate"
#
################################################################


######################### OPCJĘ DAEMONA ########################
#
# Jeżeli uruchomiony jako root, MPD porzuci przywileje roota i
# uruchomi się jako podany użytkownik. W przeciwnym wypadku mpd
# będzie pracować na użytkowniku który uruchomił mpd, nie
# polecane w przypadku gdy mpd nie porzuca przywilejów roota.
#
user                            "kowalski"
#
# Adres i port nasłuchiwany przez mpd.
#
bind_to_address                  "127.0.0.1" # tylko lokalnie
#bind_to_address                 "any"       # dla wszystkich
#port                            "6600"
#
# Kontrola poziomu logowanych informacji. Można użyć:
# "default" - domyślnie
# "secure"  - bezpieczeństwo
# "verbose" - rozbudowane informacje.
#
#log_level                       "default"
#
################################################################


########################### ZEZWOLENIA #########################
#
# MPD może wymagać od użytkownika podanie hasła. Możesz ustawić
# jedno lub więcej haseł. Możesz podać co ten użytkownik będzie
# mógł robić, a co zostanie mu zabronione. Po zalogowaniu się z
# użyciem danego "hasła @ użytkownik będzie miał takie prawa".
#
#password                        "password@read,add,control,admin"
#
# Ta opcja określa na co pozwalasz nie zalogowanym użytkownikom.
# Domyślnie wszyscy użytkownicy mają pełny dostęp do MPD jeżeli
# żadne hasło nie zostało określone powyżej. W przeciwnym wypadku
# nie mają żadnego dostępu aby to zmienić ustaw tą opcję.
#
#default_permissions             "read,add,control,admin"
#
################################################################


######################### WYJŚCIE DŹWIĘKU ######################
#
# MPD obsługuje wiele typów wyjść dźwięku, potrafi jednocześnie
# wysyłać dźwięk na wiele wyjść. Możesz tutaj ustawić jedno lub
# więcej. Jeżeli tego nie ustawisz, MPD będzie ustawiał wyjście
# automatycznie przy każdym uruchomieniu..
#
# Zobacz <http://mpd.wikia.com/wiki/Configuration#Audio_Outputs>
# przykłady konfiguracji.
#
# Przykład dla wyjścia do ALSY:
#
#audio_output {
#        type                    "alsa"
#        name                    "My ALSA Device"
#        device                  "hw:0,0"     # opcjonalne
#        format                  "44100:16:2" # opcjonalne
}
#
# Przykład dla wyjścia do OSS:
#
#audio_output {
#        type                    "oss"
#        name                    "My OSS Device"
#        device                  "/dev/dsp"   # opcjonalne
#        format                  "44100:16:2" # opcjonalne
#}
#
# Przykład dla wyjścia do strumienia radiowego (dla strumieni Icecast):
#
#audio_output {
#        type                    "shout"
#        name                    "Moja nazwa radia"
#        host                    "localhost"
#        port                    "8000"
#        mount                   "/mpd.ogg"
#        password                "hackme"
#        quality                 "5.0"
#        bitrate                 "128"
#        format                  "44100:16:1"
#        user                    "source"                # opcjonalne
#        description             "Mój opis strumienia"   # opcjonalne
#        genre                   "jazz"                  # opcjonalne
#        public                  "no"                    # opcjonalne
#}
#
# Wszystkie dekodowane dźwięki będą konwertowane do tego formatu
# zanim zostaną wysłane do wyjścia dźwięku.
#
#audio_output_format             "44100:16:2"
#
################################################################


############################# MIKSER ###########################
#
# MPD potrzebuje wiedzieć jaki mikser przestawić gdy ty zmienisz
# głośność dźwięku. Jeśli nie określisz jednego tu, MPD will
# pick one based on which ones it was compiled with support for.
#
# Przykład dla kontroli przez ALSA mikser:
#
mixer_type                      "alsa"
mixer_device                    "default"
mixer_control                   "VOL"
#
# Przykład dla kontroli przez OSS mikser:
#
#mixer_type                      "oss"
#mixer_device                    "/dev/mixer"
#mixer_control                   "PCM"
#
# Jeżeli chcesz aby MPD programowo ustawiał głośność dźwięku
# i wysyłał tak na wyjście dźwięku, użyj tego:
#
#mixer_type                      "software"
#
################################################################


######################### NORMALIZACJA #########################
#
# Określ typ regulatora poziomu głośności (ReplayGain). Możesz
# użyć "album" lub "track" (utwór). Jeżeli nie określisz,
# regulacja nie będzie używana. Zobacz <http://www.replaygain.org>
# więcej szczegółów.
#
#replaygain                      "album"
#
# Ustawia pre-amp dla plików mających tagi ReplayGain.
#
#replaygain_preamp               "0"
#
# Włącz normalizacje dźwięku "w locie". To ustawienie sprawi
# że wszystkie grane piosenki będą grane z jednakowym poziomem
# głośności.
#
#volume_normalization            "no"
#
################################################################


######################### BUFOR DŹWIĘKU ########################
#
# Rozmiar buforu dla dekodowanego dźwięku. Prawdopodobnie nie
# powinieneś tego zmieniać.
#
#audio_buffer_size               "2048"
#
# Jak dużo ma załadować do buforu zanim zacznie odtwarzać?
#
#buffer_before_play              "0%"
#
# Ustawienia buforu strumieni HTTP. Jeżeli słyszysz przerywanie
# podczas odtwarzania strumienia HTTP to możesz sobie to tutaj
# poprawić.
#
#http_buffer_size                "128"
#http_prebuffer_size             "25%"
#
################################################################


########################### HTTP PROXY #########################
#
# Ustaw proxy które będzie używane do odtwarzania strumieni HTTP.
#
#http_proxy_host                 "proxy.isp.com"
#http_proxy_port                 "8080"
#http_proxy_user                 "user"
#http_proxy_password             "password"
#
################################################################


############################# LIMITY ###########################
#
# To są ustawienia różnych limitów MPD. Zmień je jeżeli twój MPD
# zajmuje Ci za wiele zasobów. Powinieneś zmienić to tylko wtedy
# gdy to jest konieczne.
#
#connection_timeout              "60"
#max_connections                 "5"
#max_playlist_length             "16384"
#max_command_list_size           "2048"
#max_output_buffer_size          "8192"
#
################################################################


######################## KODOWANIE ZNAKÓW ######################
#
# Jeżeli nazwy plików lub katalogów nie są wyświetlane prawidłowo,
# możesz to tu zmienić. W większości przypadków powinno wystarczyć
# "ISO-8859-1" lub "UTF-8". Musisz ponownie stworzyć bazę danych
# aby twoje ustawienia zostały zapisane (użyj mpd --create-db).
#
filesystem_charset              "UTF-8"
#
# Tagi ID3v1 powinny być odczytywane w formacie:
#
id3v1_encoding                  "ISO-8859-2"
#
################################################################


########################### INNE OPCJE #########################
#
# Typy metadanych które będą rozpoznawane przez MPD.
#
#metadata_to_use  "artist,album,title,track,name,genre,date,composer,performer,disc"
#
# Włącz to jeżeli życzysz sobie używać tworzonych przez MPD
# playlist w innych odtwarzaczach.
#
#save_absolute_paths_in_playlists "no"
#
################################################################
  • Uwaga: jest to wersja rozwojowa polskiego tłumaczenia pliku /etc/mpd.conf.example. Przetłumaczony tekst może zawierać błędy. W razie wątpliwości zapraszam do "dyskusji".
  • W razie jakichś problemów z dźwiękiem upewnij się że masz poprawnie skonfigurowaną kartę i mixer. Jeżeli nadal są problemy, zajrzyj tu: /var/log/mpd/mpd.error
  • W przypadku problemów z uprawnieniami przy użyciu ESD w MPD uruchom to jako root:
chsh -s /bin/true mpd

Klienty

Do obsługi MPD potrzebny jest oddzielny klient. Zobacz listę klientów na mpd wiki. Popularne to:

Konsola

  • mpc — Prosty klient w duchu KISS. Dostępne są wszystkie podstawowe funkcje
http://mpd.wikia.com/wiki/Client:Mpc || mpc
  • ncmpc — Klient oparty o bibliotekę Ncurses
http://mpd.wikia.com/wiki/Client:Ncmpc || ncmpc
  • ncmpcpp — Niemalże identyczny klon ncmpc, z kilkoma dodatkowymi funkcjami jak: edytor tagów, wyszukiwarka
http://unkart.ovh.org/ncmpcpp/ || ncmpcpp
  • pms — Wysoce rozbudowany i funkcjonalny klient Ncurses
http://pms.sourceforge.net/ || pmusAUR
  • vimpc — Klient oparty o Ncurses z obsługą w stylu edytora vi
http://sourceforge.net/projects/vimpc/ || vimpcAUR

Graficzne

  • Ario — Bogaty w funkcje klient GTK2, wygląd inspirowany Rythmboxem
http://ario-player.sourceforge.net/ || ario
  • QmpdClient — Klient napisany przy użyciu Qt 4.x
http://bitcheese.net/wiki/QMPDClient || qmpdclient
  • Sonata — Elegancki program napisany w Python i GTK+
http://sonata.berlios.de/ || sonata
  • gmpc — Klient w GTK2. Projektowany by być lekkim, łatwym, a przy okazji dostarczać wszystkie opcje MPD. Użytkownicy mogą wybierać kilka różnych metod przeglądania bazy muzycznej, rozszerzać opcje wtyczkami.
http://gmpc.wikia.com/wiki/Gnome_Music_Player_Client || gmpc
  • Dmpc — Klient opart o Dmenu, z zarządzaniem listami odtwarzania
http://wintervenom.mine.nu/ || dmpcAUR
  • Cantata — Bogaty w opcje, z dużą swobodą konfiguracji interfejsu, klient MPD dla KDE4
https://code.google.com/p/cantata/ || cantata-qtAUR

Sieć

  • Patchfork — Aplikacja internetowa do obsługi MPD, napisana w PHP i Ajaxie
http://mpd.wikia.com/wiki/Client:Pitchfork || patchfork-gitAUR.

Linki zewnętrzne