Jak skonfigurować serwer Icecast do emisji dźwięku w mojej sieci?

63

Nadawanie wyjścia karty dźwiękowej jako internetowego strumienia radiowego jest niezawodnym sposobem przesyłania strumieniowego dźwięku w sieci. Można to z powodzeniem wykorzystać np. Do przesyłania dźwięku w bezprzewodowej sieci LAN do innego komputera lub dowolnego innego urządzenia zdolnego do odtwarzania strumieni radia internetowego.

Nie znalazłem jednak łatwego przewodnika krok po kroku, jak to skonfigurować.

Takkat
źródło

Odpowiedzi:

75

Transmisja audio za pomocą Icecast2


1. Zainstaluj Icecast2 Zainstaluj icecast2


2. Edytuj konfigurację Icecast2

Otwórz plik /etc/icecast2/icecast.xmljako root w edytorze. Ze względów bezpieczeństwa powinieneś ustawić hasła w <authentication>sekcji:

<admin-user>admin</admin-user>
<admin-password>hackme</admin-password> 

Jeśli zmieniłeś <source-password>lub <relay-password>musisz to zrobić również po stronie źródła lub przekaźnika. Oznacza to, że pozostaw to ustawienie domyślne lub zmień go również w pliku ices2.xml (patrz poniżej). To samo trzeba będzie zrobić w plikach konfiguracyjnych Ices lub Darkice.

Musisz także zdefiniować nazwę hosta, do której można uzyskać dostęp do strumienia:

<hostname>localhost</hostname>

Pozostaw go jako localhost (nie musisz podawać tam rozstrzygniętego adresu IP), jeśli chcesz streamować tylko w sieci lokalnej. Domyślny port do nasłuchiwania to 8000. Zmień go tylko w razie potrzeby.


3. Edytuj ustawienia domyślne

Otwórz /etc/default/icecast2plik jako root w edytorze. Ostatni wiersz należy zmienić na

ENABLE=true

To wszystko dla Icecast2. Oczywiście istnieje wiele innych ustawień, z którymi można grać. W plikach konfiguracji znajdują się objaśnienia dotyczące parametrów.

4. Uruchom / zatrzymaj Icecast

Serwer jest uruchamiany i zatrzymywany przez następujące polecenia:

/etc/init.d/icecast2 start
/etc/init.d/icecast2 stop

Podczas uruchamiania serwera Icecast można administrować z dowolnej przeglądarki http://localhost:8000/admin/po wprowadzeniu poświadczeń administratora zdefiniowanych w kroku 1. Dalsza dokumentacja jest dostępna na Icecast.org .

Stream2ip jest graficznym frontendem do szybkiego uruchamiania i zatrzymywania strumieni, w których już dokonano podstawowej konfiguracji Ices2, Ices lub Darkice.


Ices2 Zainstaluj lody 2 do przesyłania strumieniowego dźwięku OGG Vorbis z lokalnej karty dźwiękowej

Aby skonfigurować pulseaudio w celu umożliwienia nagrywania z karty dźwiękowej, patrz uwaga dla Darkice poniżej.

Twórz katalogi dla Ices2

mkdir /var/log/ices   # in case you need logfiles.  
mkdir /etc/ices2      # for putting ices stuff in.  

Edytuj .xml konfigurację Ices2

Ices2 będzie działać przy użyciu pliku .xml do ustawień. Pełne przykłady konfiguracji można znaleźć w /usr/share/doc/ices2/examples/. Pliki te należy edytować zgodnie z własnymi potrzebami i można je skopiować w dowolnym miejscu, najlepiej w katalogu domowym. W zależności od pliku konfiguracyjnego Ices2 używa listy odtwarzania w formacie Ogg Vorbis ( ices-playlist.xml) lub danych wyjściowych z karty dźwiękowej ( ices-alsa.xml) jako źródła przesyłania strumieniowego dla Icecast2.

W tej sekcji <input>może być konieczna wymiana urządzenia, jeśli ustawiłeś system dźwiękowy na PulseAudio. Aby to zrobić, edytuj odpowiedni wiersz do:

<param name="device">pulse</param>

Nazwa strumienia dla klienta odbierającego jest zdefiniowana w następnej sekcji.

<mount>/example1.ogg</mount>

Rozpocznij transmisję strumieniową

Strumienie z karty dźwiękowej zostaną uruchomione najpierw przez uruchomienie serwera Icecast2, a następnie Ices2 za pomocą następujących poleceń:

/etc/init.d/icecast2 start
ices2 /home/user/somewhere/ices-pulse.xml # or any other name from .xml file

Skonfiguruj odbiornik

Po stronie odbiornika twoja „stacja” radiowa nastroi się: <serverIP>:8000/example1.ogggdzie <serverIP>jest adres IP twojego serwera strumieniowego, a po nim port zdefiniowany w pliku icecast.xml (domyślnie 8000).

Zakończ przesyłanie strumieniowe

Strumienie są kończone przez zabicie Ices2 i / lub zatrzymanie uruchamiania serwera Icecast2:

killall ices2
/etc/init.d/icecast2 stop

Ices do transmisji list odtwarzania mp3

Nadawanie listy odtwarzania zawierającej pliki mp3 nie jest możliwe w Ices2. Musimy zainstalować IceS , który musimy zainstalować ze źródła .

Po skonfigurowaniu pliku konfiguracyjnego z adresem serwera, hasłem i właściwościami przesyłania strumieniowego (można znaleźć dobrze udokumentowany przykład /usr/share/doc/ices/examples) możemy przesyłać strumieniowo pliki audio MP3 z list odtwarzania (np. W formacie .m3u) na serwer Icecast2 przez:

/etc/init.d/icecast2 start
ices -c <path_to_config_file> -F <path_to_playlist>

Więcej opcji znajdziesz w dokumentacji na dość rozbudowanej stronie podręcznika man z man ices.


Darkice Zainstaluj ciemność do transmisji na żywo

Możemy przesyłać strumieniowo wyjście lokalnej karty dźwiękowej jako OGG Vorbis lub jako strumień mp3 za pomocą Darkice . Aby włączyć streaming lokalnej karty dźwiękowej, może być konieczne zdefiniowanie urządzenia nagrywającego dla Darkice w pulseaudio. Można to zrobić za pomocą pavucontrol Zainstaluj pavucontrol . W Recording karcie wybrać Monitor of <your soundcard>na "ALSA plug-in [darkice]" .

Plik konfiguracyjny (dobrze udokumentowany przykład podany w /usr/share/doc/darkice/examples) musi zostać dostosowany do serwera Icecast i lokalnego środowiska dźwiękowego:

[general]
duration        = 0      # duration in s, 0 forever
bufferSecs      = 1      # buffer, in seconds
reconnect       = yes    # reconnect if disconnected

[input]
device          = default # or `pulse' for Pulseaudio
sampleRate      = 44100   # sample rate 11025, 22050 or 44100
bitsPerSample   = 16      # bits
channel         = 2       # 2 = stereo

[icecast2-0]
bitrateMode     = vbr       # variable bit rate (`cbr' constant, `abr' average)
quality         = 1.0       # 1.0 is best quality
format          = mp3       # format. Choose `vorbis' for OGG Vorbis
bitrate         = 256       # bitrate
server          = localhost # or IP
port            = 8000      # port for IceCast2 access
password        = hackme    # source password to the IceCast2 server
mountPoint      = mystream.mp3  # mount point on the IceCast2 server .mp3 or .ogg
name            = mystream

Po zapisaniu tej konfiguracji (np. W ~/music/darkice.cfg) najpierw uruchamiamy serwer Icecast, a następnie jesteśmy w stanie przesyłać strumieniowo wyjście pulseaudio z lokalnej karty dźwiękowej, wywołując:

/etc/init.d/icecast2 start
darkice -c ~/music/darkice.cfg

W odbiorniku nastawiamy się http://<localhost>:8000/mystream.mp3na słuchanie. <localhost>to adres IP serwera Icecast.

Takkat
źródło
3
Jeśli chodzi o część „Pozostaw jako hosta lokalnego, jeśli chcesz tylko przesyłać strumieniowo w sieci lokalnej”, czy nie musi to być dostępny do sieci adres IP lub interfejs, aby inne urządzenia mogły się połączyć?
Oli
czy użytkownik admin i hasło admin są powiązane z użytkownikiem / hasłem komputera?
Charbel,
1
@Charbel: nie, nie są powiązane. Wybierz dowolne hasło. Potrzebujesz ich np. Do uzyskania dostępu do interfejsu administracyjnego Icecast ( localhost: 8000 / admin ).
Takkat
To świetna odpowiedź, dziękuję. W wielu samouczkach widzę wspominane wspólnie icecast i mpd. Nie rozumiem związku między Icecastem a MPD - czy byłbyś w stanie to wyjaśnić? Jaką rolę pełni każdy?
CoolUserName
1
Pamiętaj, że hasła Icecast2 są przechowywane (i używane w Darkice) jako zwykły tekst. Nie używaj tutaj ponownie swoich bardzo tajnych haseł.
elomage