Trochę ponad półtora roku temu opisałem jak zainstalować i skonfigurować OwnCloud na komputerze z systemem Linux (na przykładzie Raspberry Pi). OwnCloud to całkiem solidny kombajn – znajdziemy w nim odtwarzanie filmów i muzyki, kalendarz, kontakty i zadania, aż po dysk internetowy (coś jak DropBox czy Copy).
W dzisiejszym wpisie chciałbym Wam przybliżyć aplikację MPD (Music Player Daemon), która bez problemu zainstalujecie na komputerze czy serwerze z systemem Linux… Ale by tradycji stało się zadość – przykład będzie oparty o Raspberry Pi z systemem Raspbian (Debian). Wprawdzie na dziś zaplanowany był inny wpis, ale jak to często bywa – do publikacji skłonił mnie komentarz jednego z czytelników… Tak więc do dzieła…
Spis treści w artykule
MPD (Music Player Daemon)
Jest to malutki program, swego rodzaju lokalny serwera audio, który pozwala nam zdalnie lub lokalnie kontrolować lokalne, lub zdalne odtwarzanie muzyki. Ale może na przykładzie będzie łatwiej zrozumieć o co chodzi:
Odtwarzanie na głośnikach podłączonych do Raspberry Pi
Mamy Raspberry Pi z programem MPD, a do Pi mamy podpięte głośniki – teraz możemy za pomocą MPD wysłać sygnał audio na głośniki, a tym procesem możemy sterować z innego urządzenia za pomocą sieci, bądź bezpośrednio z poziomu konsoli.
Co więcej – odtwarzaniem można sterować z kilku urządzeń (klientów) symultanicznie, i będą one się automatycznie synchronizować. O samych klientach umożliwiających sterowanie MPD więcej będzie za chwilę…
Odtwarzanie na urządzeniu zdalnym (streaming)
W kilku prostych krokach można zmienić MPD w serwer strumieniowy, dzięki któremu będziemy mogli słuchać muzyki serwowanej prosto z Raspberry Pi na innym urządzeniu (komputerze, telefonie itp.).
O tym więcej również za chwilę…
MPD – instalacja i podstawowa konfiguracja
Jak zwykle – zaczynamy od aktualizacji systemu, po czym instalujemy program:
sudo apt-get install mpd mpc
Wprawdzie naszym głównym bohaterem jest MPD, to od razu można zainstalować MPC (Music Player Command). Jest to „konsolowy” klient dla usługi MPD. A więcej o klientach będzie za chwilę…
I przechodzimy do konfiguracji:
sudo nano /etc/mpd.conf
Konfiguracji jest całkiem sporo, ale ja na początek polecam zainteresować się wpisami:
- music_directory – katalog z muzyka, można posiłkować się linkami symbolicznymi
- playlist_directory – katalog z listami odtwarzania
- db_file – katalog z bazą danych
- port – port, na którym nasłuchuje usługa dla połączeń od klientów (sterowanie)
- bind_to_address „any”
Teoretycznie po tej konfiguracji program jest gotowy do działania, choć zanim do tego dojdziemy jeszcze stworzymy plik bazy danych:
sudo touch /var/lib/mpd/mpd.db
Oraz nadamy odpowiednie uprawnienia użytkownikowi „mpd” do „swojego katalogu”:
sudo chown -R mpd /var/lib/mpd
Na koniec restart usługi:
sudo /etc/init.d/mpd restart
Jeśli wszystko jest OK – usługa powinna uruchomić się prawidłowo…
Klient MPD, czyli sterowanie odtwarzaniem
Sam MPD robi za serwer audio, który wysyła dźwięk do odpowiedniego (skonfigurowanego) portu/urządzenia, ale przyda nam się jakiś klient, by tym sterować/zarządzać. Z racji tego, że MPD jest dość popularnym rozwiązaniem, to nie powinniście mieć problemów ze znalezieniem odpowiedniej dla siebie aplikacji.
Od siebie pomogę polecić m.in.:
- Gnome Music Player Client – aplikacja na komputer, dostępna zarówno dla systemu Windows, jak i Linux/Mac
- MPC (Music Player Command) – klient MPD działający z poziomu konsoli, sterowanie odbywa się za pomocą poleceń
- ncmpcpp – kolejny konsolowy klient, choć z bardziej „przyjaznym użytkownikowi” sterowaniem
- MPDroid – Jedna z lepszych (a może i najlepsza?) aplikacja na urządzenia z systemem Android
- Klient/skrypt PHP – tu nie mam swojego faworyta, ale chciałem zasygnalizować, że istnieje i taką możliwość
Gnome Music Player Client:
Ncmpcpp:
Instalacja aplikacji w systemach Debian/Ubuntu:
sudo apt-get install ncmpcpp
MPDroid:
Listę aplikacji/klientów mpd znajdziecie na tej stronie…
VPN, czyli bezpieczne zarządzanie odtwarzaniem z internetu
Gdy zamierzacie słuchać muzyki przez internet zapewne będziecie chcieli umożliwić sobie sterowanie usługą z internetu.
Wprawdzie można przekierować na routerze port 6600 (domyślny port do kontroli), ale wtedy teoretycznie każdy będzie mógł się połączyć z Waszym urządzeniem i za Was sterować usługą.
W tym wypadku polecam skorzystać z VPNa.
Odtwarzanie lokalne i sieciowe (streaming)
Aplikacje do sterowania tym, co jest odtwarzane mamy już za sobą – teraz pora na efekty, czyli muzykę :-)
Od razu dodam – nic nie stoi na przeszkodzie, by skorzystać z więcej niż jednego „wyjścia audio”, czyli można naraz strumieniować audio „w świat” i zarazem odtwarzać na głośnikach wpiętych bezpośrednio do urządzenia.
Pamiętajcie też, by po każdej zmianie konfiguracji zrestartować usługę:
sudo /etc/init.d/mpd restart
Alsa, czyli odtwarzanie lokalne
Standardowo MPD wysyła sygnał audio na lokalne wyjście audio (np. gniazdo głośników), i odpowiada za to np. taka konfiguracja w „mpd.conf”:
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:0,0" # optional
format "44100:16:2" # optional
mixer_device "default" # optional
mixer_control "PCM" # optional
mixer_index "0" # optional
}
Https, czyli odtwarzanie strumieniowe
Nic nie stoi też na przeszkodzie, by na bazie MPD zrobić swoje prywatne radio internetowe, tj. słuchać odtwarzanej muzyki z dowolnego urządzenia, przez sieć LAN czy internet.
Za aktywację strumieniowania audio odpowiada np. taka konfiguracja w „mpd.conf”:
audio_output {
type "httpd"
name "My HTTP Stream"
encoder "lame" # optional, vorbis or lame
port "8000"
# quality "5.0" # do not define if bitrate is defined
bitrate "128" # do not define if quality is defined
format "44100:16:2"
}
Taki zapis umożliwi odtwarzanie muzyki za pośrednictwem przeglądarki internetowej i/lub dowolnego programu, który pozwala na strumieniowe odtwarzanie audio ze wskazanego adresu URL.
Podstawowy adres audio:
http://Twoje_publiczne_IP:8000
Gdy zamierzacie słuchać muzyki przez internet pamiętajcie by odblokować odpowiedni port na Waszym routerze.
- Home Assistant 2024.11, czyli „sekcje” domyślnym widokiem z opcją migracji, WebRTC oraz wirtualna kamera - 1970-01-01
- Black Friday w ZUS, czyli jest jeszcze kilka dni, by złożyć wniosek RWS i skorzystać z wakacji składkowych płacąc ZUS za grudzień 2024 - 1970-01-01
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
U mnie wszystko ruszyło dopiero po konfiguracji
bind_to_address „127.0.0.1”
*zamiana na
bind_to_address „any”
albo
bind_to_address „192.168.0.22” (RaspberryPi adres IP)
A nie miałeś domyślnie:
bind_to_address "any"
Sprawdziłem na 2 Malinach – na każdej w konfiguracji mam tak i działa…
No właśnie musiałem ręcznie zmieniać na „any”. domyślnie miałem adres localhost (127.0.0.1).
To nie pierwszy taki przypadek na mojej malince; kiedyś też musiałem ręcznie zmieniać bind_address w konfigu jakiegoś daemon-a (zdaje się, że chyba tak miałem z transmission i z motion).
Chyba coś kiedyś nakręciłem w konfiguracjach Raspbiana i muszę teraz tego pilnować :-(
Ok, w każdym razie „na wszelki wypadek” dodałem taką informację do opisu…