Jak streamować dźwięk z wejścia karty dźwiękowej USB w Raspberry Pi do serwera Icecast?

panwolfram
Posty: 4
Rejestracja: sobota 04 gru 2021, 21:25

Jak streamować dźwięk z wejścia karty dźwiękowej USB w Raspberry Pi do serwera Icecast?

Post autor: panwolfram »

Witajcie!

Jako że eksperymentujemy z kwestiami radiowymi, wraz z Jankiem wymyśliliśmy zestaw do streamingu dźwięku na serwer Icecast. Jedną z jego części jest Raspberry Pi z wpiętą kartą dźwiękową USB.

Osoby związane z nadawaniem internetowym znają i wykorzystują do tego celu jeden z popularnych programów: Virtual DJ, Mixxx, Sam Broadcaster, RadioBOSS czy po prostu Winamp. Zagwozdką natomiast okazuje się nadawanie wprost z karty dźwiękowej, przy minimalnym użyciu zasobów (streaming ma być energooszczędny i chodzić na Raspberry Pi). Doszukałem się takiej metody i nazywa się ona...

DarkIce
Oprogramowanie jest prostym w podstawowej konfiguracji klientem Icecast2, posiadającym jednak pewne bardziej zaawansowane opcje.
W moim przypadku wykorzystałem jego kompilację przystosowaną specjalnie dla Raspberry Pi, dostępną na Githubie: https://github.com/x20mar/darkice-with- ... pberry-pi/.
Pomimo że wersja jest nieco leciwa, do docelowego zastosowania sprawdza się idealnie.

Jak zainstalować DarkIce?
Procedurę wykonuję na najnowszym możliwym Raspbianie, wgranym przez Pi Imager.

1. Przełączamy się na prawa administratora Please Login or Register to see this code 2. Aktualizujemy repozytoria systemu a następnie instalujemy niezbędne zależności. Please Login or Register to see this code 3. Pobieramy DarkIce z Githuba: Please Login or Register to see this code Jeżeli plik zniknie z Githuba, wrzucam go również jako załącznik do tego posta:
darkice_1.0.1-999~mp3+1_armhf.deb
(102.82 KiB) Pobrany 11 razy

4. Ustawiamy poprawną nazwę pobranego pliku: Please Login or Register to see this code 5. Listujemy urządzenia dźwiękowe dostępne w systemie: Please Login or Register to see this code Pojawi się komunikat podobny do tego: Please Login or Register to see this code Możemy z niego wywnioskować że w systemie jest dostępne tylko jedno urządzenie przechwytujące - na karcie 1 (card 1), podurządzenie 0 (Subdevice #0). To skutkuje oznaczeniem urządzenia jako plughw:1,0. Jest to istotne w kolejnym kroku.

6. Tworzymy nowy plik z konfigurację DarkIce: Please Login or Register to see this code Wklejamy do pliku następującą konfigurację: Please Login or Register to see this code W sekcji input -> device trzeba ustawić nazwę urządzenia wejściowego którą złożyliśmy w poprzednim kroku. Szczególnie ważne jest też ustawienie parametrów do serwera streamingowego. Streamer nie będzie działał jeżeli nie mamy żadnego serwera poprzez który można streamować.

7. Teraz będziemy musieli utworzyć tzw. serwis systemd, który służy do uruchamiania streamera wraz ze startem systemu i restartowania go w razie problemów: Please Login or Register to see this code Wklejamy do niego następującą konfigurację: Please Login or Register to see this code 8. Na koniec potrzebujemy przeładować konfigurację systemd oraz załączyć serwis: Please Login or Register to see this code Udanych audycji!
ODPOWIEDZ