Raspberry Radio
Sep 15, 2016 · 3 minute read · Commentsradio
Dziś zajmiemy się transmisją muzyki na odległość. W tym poście przedstawiam pierwszy sposób, czyli…
Radio internetowe
Korzystamy ze starej, chociaż już może trochę zapomnianej (w dobie Spotify i Youtube) metody, czyli streamowania muzyki przez sieć. Na Raspberry Pi zainstalujemy oprogramowanie i przegramy muzykę, a w komputerach “odbiorczych” wystarczy program odtwarzający strumienie.
Lista rzeczy niezbędnych:
- Raspberry Pi (w tym wypadku model B)
- Sieć lokalna i podłączenie do niej
- Karta SD (w przypadku B+ i późnieszych microSD) z najnowszym systemem Raspbian
Instalacja oprogramowania
Dla wygody założę, że Raspberry ma adres IP: 192.168.0.10.
Logujemy się przez ssh na Raspberry Pi (login:pi, hasło: raspberry):
$ ssh pi@192.168.0.10
I instalujemy oprogramowanie:
$ sudo aptitude install icecast2 mpd mpc
W końcowej fazie instalacji system zapyta nas, czy chcemy skonfigurować Icecasta, odpowiadamy twierdząco i w kolejnych krokach podajemy hasła, którymi zabezpieczamy Icecast. Radzę zapamiętać hasła, będziemy ich potrzebować, ale jeśli się nie uda, to wszystko jest zapisane otwartym tekstem w pliku /etc/icecast2/icecast.xml
;).
To tyle, jeśli chodzi o Icecast2. Przejdźmy teraz to źródła dźwięku, którym będzie mpd
.
Konfiguracja
Edytujemy plik /etc/mpd.conf
i wyszukujemy wszystkie sekcje audio_output
. Każdą z nich musimy zakomentować - nie potrzemujemy więcej niż jednego wyjścia dźwięku. Znajdujemy audio_output
z typem shout
i dokładnie tą sekcję odkomentowywujemy.
Nastepnie przeprowadzamy jej mały tuning:
audio_output {
type "shout"
name "PiRadio MPD"
description "PiRadio MPD"
host "localhost"
port "8000"
mount "/mpd"
password "HASŁO ICECAST SOURCE"
bitrate "128"
format "44100:16:2"
encoding "mp3"
}
To co nas w tym momencie interesuje to password
- podajemy dokładnie takie, jak podaliśmy w konfiguracji Iceauth2.
Restartujemy demona mpd:
$ sudo /etc/init.d/mpd restart
lub
$ sudo service mpd restart
W tym momecie powinniśmy mieć działający system streamingu.
Sprawdzamy jeszcze dostępne wyjścia dźwięku:
$ mpc outputs
Output 1 (PiRadio MPD) is enabled
I jeśli nasze PiRadio MPD jest disabled
to należy je odblokować:
$ mpc enable 1
Uprawnienia
Sprawdzamy updawnienia naszego użytkownika (konkretnie czy jest w grupie audio
).
$ groups
pi adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c sp
Jeśli z jakiegoś powodu na powyższej liście nie ma audio
należy zmodyfikować grupy:
$ sudo usermod -a pi -G audio
Następnie w domyślnym katalogu biblioteki audio mpd /var/lib/mpd/music
ustawiamy odpowiednie prawa zapisu dla grupy audio
:
$ sudo chmod g+w /var/lib/mpd/music/ /var/lib/mpd/playlists/
$ sudo chgrp audio /var/lib/mpd/music/ /var/lib/mpd/playlists/
Pliki audio
Do katalogu /var/lib/mpd/music/
przegrywamy pliki muzyczne i wykonujemy sekwencję:
$ mpc update
$ mpc ls | mpc add
Co powoduje dodanie wszystkich plików do playlisty
Nastepnie uruchamiamy zapętlone odtwarzanie:
$ mpc repeat on
I w końcu włączamy odtwarzanie:
$ mpc play
W naszych uszach powinna zabrzmieć… błoga cisza, bo dźwięk jest stramowany przez sieć ;).
Wchodzimy z poziomu przeglądarki na adres http://192.168.0.10:8000
i oczom naszym powinien ukazać się działający serwer Icecast2. Wystarczy skopiować widoczny tam link m3u (przykładowo http://192.168.0.10:8000/mpd.m3u
) i wkleić np. do playera VLC (Ctrl + n).
W tym momencie nasze piosenki powinny być odtwarzane w playerze.
Kolejne podtwarzacze należy podłączać do naszego stramingu analogicznie.